C# Winform 多文本框联动
我有四个textbox,分别显示一个矩形的四个顶点的坐标,横纵坐标用“,”分割,例如:
textbox1.text=X1,Y1
textbox2.text=X2,Y1
textbox3.text=X2,Y2
textbox4.text=X1,Y2
我想实现的是,四个textbox的任何一个值发生变化,另一个相同的值也应该改变,例如:我改变了textbox1的X1,那么textbox4的X1也发生变化。
我的做法是:
分别在四个textbox的TextChanged事件里写类似下面的代码:
private void txtPos1_TextChanged(object sender, EventArgs e)
{
this.txtPos2.Text = this.txtPos2.Text.Split(',')[0] + "," + this.txtPos1.Text.Split(',')[1];
this.txtPos4.Text = this.txtPos1.Text.Split(',')[0] + "," + this.txtPos4.Text.Split(',')[1];
}
但这样存在的一个问题就是这个事件会被多次触发,还有什么好方法吗?
另问题二:我怎么限定这四个textbox只能输入形如“0.12,12.89”这样的两个double之间有一个“,”形式。
我试过在每一个KeyUp事件里这样写:
Regex reg = new Regex(@"[^\d]", RegexOptions.IgnoreCase); //只能输入数字
txtequNumber.Text=reg.Replace(txtequNumber.Text,"");
但第二句显然不对,不是“0.12,12.89”这样的格式了。问如何解决。