【问题标题】:Difference between textbox text added by binding and added by code in windows form C#Windows窗体C#中通过绑定添加的文本框文本和由代码添加的文本框文本之间的区别
【发布时间】:2014-02-09 18:44:41
【问题描述】:

我有一个带有数据绑定的TextBox,稍后我通过ComboBoxcombobox_selectedindexchanged() 事件更新文本。

我的问题是,combobox_selectedindexchanged() 事件中的数据发生了变化,但是当我单击 TextBox 时,数据消失了。

【问题讨论】:

  • 能否请您发布相关代码?

标签: c# .net winforms textbox windows-forms-designer


【解决方案1】:

如果我理解您的问题,您正在更新绑定 TextBox 上的 TextBox.Text 属性。

不要这样做!

如果您需要更新该 TextBox 中的文本,请更新底层数据源

干杯

【讨论】:

    【解决方案2】:

    我创建了一个项目,按照您上面提到的做任何事情。 TextBox 的文字在comboBox_SelectedIndexChanged 事件后变为“Foo”,然后当我点击TextBox 时,它仍然存在。这是我的代码。

    private Foo _foo;
    public Form1()
    {
        InitializeComponent();
        _foo = new Foo();
        txtName.DataBindings.Add("Text", _foo, "Name");
    }
    
    private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        txtName.Text = "Foo";
    }
    

    您是否在其他地方更改了TextBox 的文本?也许你应该在这里发布你的代码,这样我们就可以看到问题所在了。

    【讨论】:

    • 我将文本框绑定到数据源,所以当我单击文本框时,它会从该数据源中获取值。所以现在我在 combobox_selectedindexchanged 事件中更新数据源,现在它的工作........
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多