我在jQuery(找到here)中遇到过类似的问题,我试图根据我在C#中的需要对其进行修改,但我没有设法做到这一点。我想要的是标题所说的内容,我希望用户在一个文本框中键入一些文本,并将结果同时显示在另一个文本框中。这是我的目标(很明显,它不起作用),我试图将第一个文本框的KeyUp
事件的参数传递给第二个文本框的相应事件,但看起来并不那么容易:
public mainFrm()
{
InitializeComponent();
this.txtFormat.KeyUp += new KeyEventHandler(txtFormat_KeyUp);
this.txtNewFormat.KeyUp += new KeyEventHandler(txtNewFormat_KeyUp);
}
private void txtFormat_KeyUp(object sender, KeyEventArgs e)
{
txtNewFormat_KeyUp(sender, e);
}
private void txtNewFormat_KeyUp(object sender, KeyEventArgs e)
{
}
提前感谢您的帮助。
答案 0 :(得分:9)
最简单的方法是只听一个TextChanged
的{{1}}事件并将当前状态转发给另一个
TextBox
答案 1 :(得分:2)
这将使两个文本框保持同步:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
textBox1.TextChanged+=new EventHandler(textBox_TextChanged);
textBox2.TextChanged+=new EventHandler(textBox_TextChanged);
}
void textBox_TextChanged(object sender, EventArgs e)
{
string text=(sender as TextBox).Text;
if(!textBox1.Text.Equals(text)) { textBox1.Text=text; }
if(!textBox2.Text.Equals(text)) { textBox2.Text=text; }
}
}