c# - 验证 MessageBox 上的案例
问题描述
我有这样的消息框:
if (MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.No)
{
}
现在我想用“是”和“取消”添加其他情况,因为MessageBoxButtons.YesNoCancel
我尝试这样:
if (MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.No)
{
}
else if (DialogResult.Yes)
{
return;
}
else if (DialogResult.Cancel)
{
return;
}
但是 VisualStudio 标记为红色并抛出:
无法将类型“System.Windows.Forms.DialogResult”隐式转换为“bool”
我应该如何在验证中添加是和取消案例?
解决方案
您需要将结果存储在类型的变量中DialogResult
:
var dialogResult = MessageBox.Show("Message", "System message", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (dialogResult == DialogResult.No)
{
}
else if (dialogResult == DialogResult.Yes)
{
return;
}
else if (dialogResult == DialogResult.Cancel)
{
return;
}
写成这样会更好:
var dialogResult = MessageBox.Show("Message", "System message",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (dialogResult == DialogResult.Yes || dialogResult == DialogResult.Cancel)
{
return;
}
// logic for No here
// as this means No was pressed
推荐阅读
- kubernetes - 使用 kubectl 运行将部署对象创建到 AKS 服务会引发服务器报告 400 问题
- thingsboard - 如何获取 excel 文件或 CSV 以用于使用 thingsboard 的真实案例
- gerrit - Gerrit:此时身份验证不可用
- ethereum - 转换为 bytes32 后出现参数问题
- azure - 将 Azure Data Lake Storage 挂载到 Windows VM 文件系统
- jenkins - Jenkins IllegalArgumentException,同时添加一个新的奴隶
- python-3.x - 如何选择重复记录数字的第一个值
- java - Java 堆空间 - 内存不足错误 - 带有 SASL_SSL 的 Kafka 代理
- c++ - 关于骰子概率和二维数组的问题
- python - 是否有一种图像格式可以使用大于 255 的数字保存一个像素