我有一个包含多个列的DataGridView,包括按钮和组合框。我想实现一个验证,当DataGridView失去焦点时触发,并按预期工作。但是,从DataGridView中的Text列移动到非Text(按钮,组合框)列时,也会触发相同的验证。LostFocus事件处理程序在点击选定行内的控件时触发
有没有人有任何建议如何解决这个问题?我尝试了各种可能的解决方案,但一直未能完全解决问题。
这里是我的事件处理程序和事件处理程序初始化样子代码:
初始化程序:
dgvCopy.LostFocus += dgvCopy_LostFocus;
事件处理程序:
private void dgvCopy_LostFocus(object sender, EventArgs e) {
if (dgvCopy.SelectedRows.Count > 0) {
if (dgvCopy.SelectedRows[0].Cells["Type"].Value == null) {
MessageBox.Show("Please choose a type");
txtCopyText.Enabled = false;
}
else {
txtCopyText.Enabled = true;
}
}
任何帮助或建议是多少不胜感激!
谢谢!这工作完美! –
请注意,当您离开DataGridView时,仅当新活动控件的CausesValidation属性设置为true时,才会触发验证。 因此,根据您的要求,您可能希望使用Leave事件。 –