скопировать значение textbox из одной формы в другую
Есть две формы, у каждой формы есть свой textbox. Эти формы активны. Как значение textbox второй формы скопировать в textbox первой формы при каком-то событии?
Для этого в проекте создаём класс, а классе public переменную :
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ChangeTextBoxs
{
class MyClass
{
public static string strTextChangeN { get; set; }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ChangeTextBoxs
{
class MyClass
{
public static string strTextChangeN { get; set; }
}
}
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ChangeTextBoxs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
frm2 = new Form2();
}
Form2 frm2;
private void btnShowForm2_Click(object sender, EventArgs e)
{
frm2.Show();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
MyClass.strTextChangeN = textBox1.Text;
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = MyClass.strTextChangeN;
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ChangeTextBoxs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
frm2 = new Form2();
}
Form2 frm2;
private void btnShowForm2_Click(object sender, EventArgs e)
{
frm2.Show();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
MyClass.strTextChangeN = textBox1.Text;
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = MyClass.strTextChangeN;
}
}
}
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ChangeTextBoxs
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
MyClass.strTextChangeN = textBox1.Text;
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = MyClass.strTextChangeN;
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ChangeTextBoxs
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
MyClass.strTextChangeN = textBox1.Text;
}
private void textBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = MyClass.strTextChangeN;
}
}
}
Результат примерно так:
А как сделать так, чтобы при нажатии кнопки на form1 текст переходил из form1.textbox переходил в form2.textbox?
Добавить выше напечатанному коду.
Код формы 1:
Код:
private void bntShowTXForm2_Click(object sender, EventArgs e)
{
frm2.textBox1.Text = MyClass.strTextChangeN;
// или так
//frm2.textBox1.Text = this.textBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
MyClass.strTextChangeN = this.textBox1.Text;
}
{
frm2.textBox1.Text = MyClass.strTextChangeN;
// или так
//frm2.textBox1.Text = this.textBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
MyClass.strTextChangeN = this.textBox1.Text;
}
Извините, я неправильно задал вопрос: А как сделать так, чтобы при нажатии кнопки на form2 текст переходил из form2.textbox переходил в form1.textbox?
Могу предложить деревянный способ с применением timer, который каждую секунду проверяет переменную strTextChangeTX1, ну Вы понимаете это не есть правильно. Т.К timer очень грузит ресурсы компа.
Код формы 1:
Код:
namespace ChangeTextBoxs
{
public partial class Form1 : Form
{
public static string strTextChangeTX1{get; set;}
static string strControl {get; set;}
//.....
//.....
private void timer1_Tick(object sender, EventArgs e)
{
if (!(strControl == strTextChangeTX1))
{
this.textBox1.Text = strTextChangeTX1;
}
strControl = strTextChangeTX1;
}
{
public partial class Form1 : Form
{
public static string strTextChangeTX1{get; set;}
static string strControl {get; set;}
//.....
//.....
private void timer1_Tick(object sender, EventArgs e)
{
if (!(strControl == strTextChangeTX1))
{
this.textBox1.Text = strTextChangeTX1;
}
strControl = strTextChangeTX1;
}
Код:
private void bntShowTXForm1_Click(object sender, EventArgs e)
{
Form1.strTextChangeTX1 = this.textBox1.Text;
}
{
Form1.strTextChangeTX1 = this.textBox1.Text;
}