c# - 关闭winform时检测单击了哪个按钮?
问题描述
我的winform中有这个事件处理程序:
private void SaveToDXF_FormClosing(object sender, FormClosingEventArgs e)
{
// Make sure the user has selected at-least one layer
if (listBoxLayers.SelectedItems.Count == 0)
{
_AcAp.Application.ShowAlertDialog("Please select one or more layers.");
e.Cancel = true;
}
}
最初我使用的是OK按钮单击处理程序,但我很快发现似乎没有办法取消实际关闭表单。然后我在 SO 上阅读了使用的建议FormClosing
。这工作正常,但......
如果用户通过按下取消按钮关闭表单,此事件仍会触发。那讲得通。但我只想执行此验证检查并在他们单击“确定”按钮时取消关闭表单。
我们如何做到这一点?
解决方案
听起来您可以检查this.DialogResult
关闭处理程序中的 :它会根据单击的按钮而有所不同(无论您DialogResult
在属性网格中设置什么)。
例如“不要检查他们是否正在取消”可能就像
if (this.DialogResult != DialogResult.Cancel && listBoxLayers.SelectedItems.Count == 0)
如果您有更多检查要做,那么将“如果取消则返回”作为事件处理程序的第一行可能很简单
推荐阅读
- excel - 用总和 Excel 偏移
- python - 如何检查数字列表是否在python中的2个值之间?
- python - 如何将列表元素作为索引号在 Python 中打印另一个列表?
- java - recyclerView android上只能点击一项
- kubernetes - NetworkPolicy 无法限制来自 UI 的 Ingress
- javascript - 将条带结帐与 .net 集成
- node.js - 如何在 MERN 应用程序上使 Set-Cookie 警告消失?
- esp32 - 将 esp32 cam 连接到电脑
- html - 图像未调整的 HTML 链接
- sql-server - SQL Server:将 INSERT INTO SELECT 与具有相同源/目标数据库的 JOIN 一起使用时出现转换错误