【问题标题】:How do I work with WIndows Forms in WPF?如何在 WPF 中使用 WIndows 窗体?
【发布时间】:2010-05-26 19:11:29
【问题描述】:

如何在 WPF 中使用 WIndows 表单?

在我的 WPF 程序中,我创建了一个 Windows 窗体类。 在这个表单中,我放置了一个 OK 按钮,然后我进入按钮的属性并将 DialogResult 设置为 OK。 现在,我从 MainWindow.xaml.cs 调用这个对话框(窗口窗体):

     DialogResult dres;
     dres = form.ShowDialog();
     if (dres != DialogResult.OK) return;

编译器在抱怨:

Error   3   'System.Nullable<bool>' does not contain a definition for 'OK' and no extension method 'OK' 
accepting a first argument of type 'System.Nullable<bool>' could be found (are you missing a using directive 
or an assembly reference?)

【问题讨论】:

    标签: c# wpf winforms


    【解决方案1】:

    编译器正在查找 DialogResult 的另一个定义,可能在您的代码中的某个位置。完全拼出它的名字以避免歧义:

     System.Windows.Forms.DialogResult dres;
     dres = form.ShowDialog();
     if (dres != System.Windows.Forms.DialogResult.OK) return;
    

    【讨论】:

    • 第一次出现不需要更改,但第二次出现需要;编译器在这里找到类的 DialogResult 属性而不是 DialogResult 枚举。
    【解决方案2】:

    那是因为你应该比较表单对象的 DialogResult 属性,而不是它本身的对象。用这个替换它,它应该可以工作:

    if( dres.DialogResult != DialogResult.OK ) return;
    

    【讨论】:

    • dres 定义如下: DialogResult dres;所以 System.Windows.Forms.DialogResult' 不包含 'DialogResult' 的定义。
    猜你喜欢
    • 1970-01-01
    • 2011-03-01
    • 2013-06-09
    • 2010-10-02
    • 2010-10-15
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多