在一个表单中,我有一个 TextBox 在其成员属性“Title”上绑定(bind)了一个对象。伴随它的是一个“保存”按钮来测试绑定(bind)。
似乎底层对象属性不会得到更新,除非文本框失去焦点。但是没有 form.ActiveControl.Blur() 可供使用。此外,这看起来不像是一个合理的 hack。
无论如何要做得更好?谢谢。
编辑:抱歉不清楚。我的问题在标题中:“如何提交文本框”。我使用 DataGridView 提交和 BindingSource 提交中的术语“提交”。它在 WinForms 中。 (从未使用过 WPF,所以我没有想到。抱歉)。
我的实际情况是我有一堆 TextBox 绑定(bind)到单个对象的属性。用户在所有文本框中输入值,当用户单击保存(工具栏按钮)时,最后一个文本框仍处于焦点状态(或处于编辑模式),因此保存不会捕获最后一个文本框中的最后一个值。
我想找到在保存之前“提交”文本框值的正确方法。
谢谢。
最佳答案
由于问题已更新以表明这是 WinForms,因此您需要以不同于 WPF 应用程序的方式处理事情。幸运的是,事实证明解决方案非常简单。
每当用户点击“保存”按钮时(比如说,在您的保存按钮的 Click
事件处理程序中),您需要调用 EndEdit
BindingSource
上的方法。这将导致所有待处理的更改都提交到基础数据源,这正是您希望完成的。
另见 relevant documentation在 MSDN 上获取更多详细信息。
关于C# 如何提交一个文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537832/