日期:2014-05-18  浏览次数:20771 次

WinForm控件真的很垃圾
一个非常简单的问题,竟然用了两个小时,查了N多资料也没有解决。.net的winfrom内伤很深。

说一下问题,不对之处请达人指点:

三个textbox,前两个在textchanged事件中写代码,用于输入数据后相乘运算,第三个显示运算后的值。如果您运行这么简单的代码,当然不会出错,非常顺利。

但是,如果这三个textbox绑定到一个数据源上,那么您再试试。保证会头大一圈。


如果说不是BUG,那么很难想象一个这么简单的控件,在表现行为上,依据绑定与否会有这么大的差别。还有很多类似的东西,叫人非常不爽!!!

也许学艺不精,还请达人指点。

------解决方案--------------------
这样试试:
C# code
private void textBox1_TextChanged(object sender, EventArgs e)
{
    int A = 0, B = 0;
    int.TryParse(textBox1.Text, out A);
    int.TryParse(textBox2.Text, out B);
    textBox3.Text = (A + B).ToString();
    textBox3.DataBindings["Text"].WriteValue();
}

------解决方案--------------------
binding 尽量还不是少用的好。

考虑更自主些的方式吧。
------解决方案--------------------
一定要绑定吗?你可以在DataTable中把那个对应第三个TextBox的列设置为计算字段啊。