Joe*_*oel 8 .net validation datagridview winforms
嗨我有一个包含菜单栏,工具条和DataGridView控件的窗体.我正在使用VB.Net.
我在工具条上有一个保存按钮和一个保存菜单项.我需要在保存发生之前运行验证.我的问题是,如果更改单元格值,然后单击任一保存按钮,则不会运行验证,因此不会保存新值.
我已经看过DataGridView上的事件,比如'leave'事件,但似乎没有我想做的事情.即单击任一保存按钮时,即"离开"不会运行.
当点击其中一个按钮(或任何其他按钮)时,是否有人知道我可以运行验证代码的方式.
任何帮助是极大的赞赏!
问题在于,单击控件上的按钮或控件ToolStrip
上的项目不会导致当前选定的控件引发/事件。这是设计使然。与菜单和工具栏交互不会导致当前选定的控件失去焦点,这意味着永远不会触发验证。MenuStrip
Validating
Validate
如果你仔细想一想,这也是有道理的。想象一下,您的验证逻辑要求每个单元格都包含一个值(即,它防止单元格留空或为空)。如果每次用户尝试从菜单或工具栏中选择一个项目时都会触发验证事件,他们甚至无法将任何内容“粘贴”到单元格中!
如果您坚持覆盖此行为,则必须在表单中添加一堆丑陋的附加逻辑,并且您将面临严重惹恼用户的风险。我只想说我不推荐它。
更好的解决方案是将验证逻辑提取到单独的方法中,并在要触发验证的每个菜单/工具条项的事件处理程序方法的开头手动调用它。或者,您可以使用方法在“保存”工具条按钮单击事件处理程序的开头引发控件LostFocus
的事件。就像是:DataGridView
InvokeLostFocus
InvokeLostFocus(myDataGridView, EventArgs.Empty)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3786 次 |
最近记录: |