0

私はまだ遭遇していない問題を抱えています。あなたの何人かが私を助けてくれることを願っています。複数行のテキストボックスの最初、2番目、または最後の行のいずれかの1行を選択し、C#でボタンをクリックして別の複数行のテキストボックスに移動しようとしています。一度に 1 行だけを選択して、他の複数行のテキスト ボックスに追加する方法がわかりません。誰かが洞察力を持っているなら、それは素晴らしいことです!ありがとうございました!

ブレント

4

3 に答える 3

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を使用することです。

于 2012-06-30T18:52:52.590 に答える
1

さて、「行」を改行文字を含む他の同様の文字列で区切られた完全な文字列として定義していると仮定します。ワードラッププロパティが設定されたテキストフィールドの単一の水平面に表示される文字列としてだけではありません。真に……

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 つの文字を微調整する必要があるかもしれません。保証なし、笑。

于 2012-06-30T18:18:32.307 に答える
1

このようなものが動作します:

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;
    }
}
于 2012-06-30T18:18:45.240 に答える