同时输入两个文本框

时间:2014-01-13 20:41:12

标签: c# textbox

我在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)
{
}

提前感谢您的帮助。

2 个答案:

答案 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; }
    }

}