アプリ版:「スタンプのみでお礼する」機能のリリースについて

凄く基本的なことかもしれないのですが色々検索しても見つからなかったので質問させてください。

Visual C# 2010を使っています。
textBoxのMultiLineをtrueにして複数行書けるようにしています。

そこで、プログラム上で指定の行を削除したり書き換えたりする方法を知りたいです。

指定の行のデータを取得する方法はわかったのですが、応用できませんでした。
MessageBox.Show(textBox1.Lines[0].ToString());
で、1行目のデータをMessageBoxで表示できました。

なので、以下のように書けば削除できるかと思いましたがダメでした。
textBox1.Lines[0] = "";
もしくは
textBox1.Lines[0].Remove(0);

目的は、以下のような複数行のデータがあった場合に指定の行を消すといったことです。

1234
5678
9012

で、例えば、2行目を消して

1234
9012

としたいです。

textBox1.Text = textBox1.Text.Replace(textBox1.Lines[0], "");
とやって置き換えることはできるのですが、同じデータがある場合に全て置き換わってしまうのと、改行が残ってしまうので微妙です。

よろしくお願いします。

A 回答 (2件)

> ありがとうございます。

実行してみたのですが
> エラーで動きませんでした(汗)
> lines.Remove(1);に対してのエラーなのですが

大変申し訳ございません、間違ったやつで投稿してし
まいました。正しくはこうです。

List<string> lines = new List<string>(textBox1.Lines);
lines.RemoveAt(1); // 2行目削除
textBox1.Text = String.Join("\r\n", lines);
    • good
    • 1
この回答へのお礼

お礼が遅くなり申し訳ありません。
上記のスクリプトで出来ました。
助かりました!ありがとうございます。

お礼日時:2014/02/25 05:32

例えばこんな感じとかどうでしょう。



List<string> lines = new List<string>(textBox1.Lines);
lines.Remove(1); // 2行目削除
textBox1.Text = String.Join("\r\n", lines);
    • good
    • 1
この回答へのお礼

ありがとうございます。実行してみたのですがエラーで動きませんでした(汗)

lines.Remove(1);に対してのエラーなのですが

■ System.Collections.Generic.List<string>.Remove(string)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。

■ 引数 1: 'int' から 'string' に変換できません

どう対処していいかわからないです。スミマセンがよろしくお願いします。

お礼日時:2014/02/23 22:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A