Boneyards
Boneyards

Reputation: 83

How do I prepend text from one textbox to another?

Basically I'm making a simple program to help take notes at my job. I have a one line textbox1, and a multiple line textbox2.

I want to be able to type whatever in textbox1, and then press "enter" and it show up in the first line in textbox2. Any help would be appreciated.

    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

    }

    private void textbox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void textBox2_TextChanged(object sender, EventArgs e)
    {

    }
}

Upvotes: 1

Views: 1399

Answers (3)

Raphaël Althaus
Raphaël Althaus

Reputation: 60493

//in form constructor, or InitializeComponent method
textBox1.Validated += DoValidateTextBox;



//in another place of your class
private void DoValidateTextBox(object sender, EvenArgs e) {
  textBox2.Text =  ((TextBox)sender).Text + Environment.NewLine + textBox2.Text;
}

Upvotes: 5

RobStevo
RobStevo

Reputation: 153

It depends on what you want the final result to be. If all you want is the first line of the second textbox to equal the first then:

void myEvent()
{
    textbox2.Text = textbox1.Text;
}

If however you want whatever is in textbox1 to be appended to textbox2 every time you press a button, then you are better off using a ListView:

void myEvent()
{
   myListView.Items.add(textbox1.Text);
}

If you specifically want a textbox though (with the data always appended to the first line):

void myEvent() 
{ 
   textbox2.Text = textbox1.Text + Environment.NewLine + textbox2.Text; 
}

Upvotes: 3

Alina B.
Alina B.

Reputation: 1276

This should work:

private void textBox1_KeyDown(object sender, KeyEventArgs e) // Keydown event in Textbox1
{
  if (e.KeyCode == Keys.Enter) // Add text to TextBox2 on press Enter
  {
    textBox2.Text += textBox1.Text;
    textBox2.Text+= "\r\n"; // Add newline
    textBox1.Text = string.Empty; // Empty Textbox1
    textBox1.Focus(); // Set focus on Textbox1
  }
}

If you want to add text at the firstline of your textbox, then replace in the code above:

textBox2.Text = textBox1.Text + "\r\n" + textBox2.Text;

Upvotes: 3

Related Questions