C# 如何提交一个文本框?

标签 c# winforms binding textbox

在一个表单中,我有一个 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/

相关文章:

来自wav文件的C#语音识别,我需要获取每个单词的时间 - lipsync

c# - LINQ FirstOrDefault 返回超过 1 个结果

c# - 如何在 C# 中将字符串值从一种形式传递到另一种形式的加载事件

c# - 以编程方式从网络接口(interface)发送数据

c# - 手动触发按钮(或任何控件)单击事件。 C#

c# - 绑定(bind) Canvas 上元素的位置

c# - 对事件 ApplicationStarted 使用未定义的关键字值 0x1。在 EnterpriseLibrary SLAB 中

wpf - 如何以编程方式设置 ContentControl 的 ContentTemplate

javascript - React.js,如何避免 var me = this?

c# - C# 中小数的 Math.Round