私はまだ遭遇していない問題を抱えています。あなたの何人かが私を助けてくれることを願っています。複数行のテキストボックスの最初、2番目、または最後の行のいずれかの1行を選択し、C#でボタンをクリックして別の複数行のテキストボックスに移動しようとしています。一度に 1 行だけを選択して、他の複数行のテキスト ボックスに追加する方法がわかりません。誰かが洞察力を持っているなら、それは素晴らしいことです!ありがとうございました!
ブレント
私はまだ遭遇していない問題を抱えています。あなたの何人かが私を助けてくれることを願っています。複数行のテキストボックスの最初、2番目、または最後の行のいずれかの1行を選択し、C#でボタンをクリックして別の複数行のテキストボックスに移動しようとしています。一度に 1 行だけを選択して、他の複数行のテキスト ボックスに追加する方法がわかりません。誰かが洞察力を持っているなら、それは素晴らしいことです!ありがとうございました!
ブレント
次のようなことを試してください:
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Lines.Length > 0)
{
textBox2.Text += textBox1.Lines[textBox1.GetLineFromCharIndex(textBox1.SelectionStart)];
}
}
それがしていることは、 TextBox.Lines配列から Line を引き出すために、SelectionStart キャレット位置を char インデックスとしてGetLineFromCharIndexを使用することです。
さて、「行」を改行文字を含む他の同様の文字列で区切られた完全な文字列として定義していると仮定します。ワードラッププロパティが設定されたテキストフィールドの単一の水平面に表示される文字列としてだけではありません。真に……
public void Button1_Click(object sender, ClickEventArgs e)
{
//get the values of both boxes
string value1 = TextBox1.Text.Trim();
string value2 = TextBox2.Text.Trim();
//split the value from the source box on its new line characters
string[] parts = value1.split(Environment.NewLine);
string last_line = parts[parts.length -1];
//add the last row from the source box to the destination box
value2 += (Environment.NewLine + last_line);
//set the last_line in the source to an empty string
parts[parts.Length -1] = String.Empty;
//put the new values back in their text boxes
TextBox1.Text = String.Join(Environment.NewLine, parts).Trim();
TextBox2.Text = value2;
}
目に見える行とラップされた単語を扱っている場合、それはまったく別の球技であり、ASP を話しているのか、Win App を話しているのかによって答えが異なります。また、これは思いつきで書いたものなので、コンパイルするには 1 つか 2 つの文字を微調整する必要があるかもしれません。保証なし、笑。
このようなものが動作します:
public void Button1_Click(object sender, ClickEventArgs e)
{
string text = TextBox1.Text;
// spliting text on the basis on newline.
string[] myArray = text.Split(new char[] { '\n' });
foreach (string s in myArray)
{
//Line by line copy
TextBox2.Text += s;
}
}