在Visual Studio的C#快递,当我运行下面的脚本,我上线说出以下错误信息:
如果(ofd.ShowDialog()== TRUE):错误1操作“==”不能被应用于类型“System.Windows.Forms.DialogResult”和“布尔”的操作数
我怎么能解决这个问题? 下面的代码:
public override GH_ObjectResponse RespondToMouseDoubleClick(GH_Canvas sender, GH_CanvasMouseEvent e)
{
System.Windows.Forms.OpenFileDialog ofd = new System.Windows.Forms.OpenFileDialog();
ofd.Multiselect = true;
ofd.Filter = "Data Sources (*.ini)|*.ini*|All Files|*.*";
if (ofd.ShowDialog() == true)
{
string[] filePath = ofd.FileNames;
string[] safeFilePath = ofd.SafeFileNames;
}
return base.RespondToMouseDoubleClick(sender, e);
}
我怀疑你已经阅读WPF OpenFileDialog.ShowDialog
文档 ,其中方法的结果是Nullable<bool>
。 但是,如果你使用Windows窗体OpenFileDialog.ShowDialog
,返回DialogResult
-这显然你不能比拟的bool
。
看一看DialogResult
,看看你真正想做的事。 请注意,文件称:
返回:DialogResult.OK如果用户单击对话框中的确定; 否则,DialogResult.Cancel。
...所以这些应该只有你需要考虑的情况。
其替换为:
if (ofd.ShowDialog() == DialogResult.OK)
ShowDialog
方法返回的DialogResult枚举,这已以下成员:
与上定义的值进行比较DialogResult
像DialogResult.OK不是布尔值。
if (ofd.ShowDialog() == DialogResult.OK)
{
}
DialogResults的可能值如下。 你需要一个比较。
DialogResult.None
DialogResult.OK
DialogResult.Cancel
DialogResult.Abort
DialogResult.Retry
DialogResult.Ignore
DialogResult.Yes
DialogResult.No
文章来源: C# error: Operator '==' cannot be applied to operands of type 'System.Windows.Forms.DialogResult' and 'bool'