【问题标题】:FileDialog doesn't find the method ShowDialog()FileDialog 找不到方法 ShowDialog()
【发布时间】:2013-11-22 10:19:07
【问题描述】:

我正在学习 C 和 C#,问题是 C#,我正在阅读这本编程书,但这段代码没有编译。

FileDialog 仅在智能感知中显示两种方法(Equals 和 ReferenceEquals)。代码来自一本书,所以该方法和属性应该是FileDialog 类的一部分吧?

代码如下:

    private void cmdBrowse_Click(object sender, EventArgs e   
    {
        if (FileDialog.ShowDialog() != DialogResult.Cancel)
        {
            txtLocation.Text = FileDialog.FileName;
            cmdWatch.Enabled = true;
            FileDialog.
        }
    }

编辑:我发现了问题所在,我没有在表单中添加文件对话框,我不知道文件对话框是什么,现在我记得了。呵呵

【问题讨论】:

  • 请在您的问题中包含实际代码,而不是代码截图
  • 感谢所有回答

标签: c# .net class methods filedialog


【解决方案1】:

问题是您想要一个类的实例,而不是直接使用该类。但是,FileDialog 是一个抽象类,这意味着您不能直接实例化它,但是您可以使用几个实现...

假设你要选择(打开)一个文件,那么你可以使用OpenFileDialog类:

OpenFileDialog dialog = new OpenFileDialog();
if(dialog.ShowDialog() != DialogResult.Cancel)
{
    txtLocation.Text = dialog.FileName;
    cmdWatch.Enabled = true;
}

或者,如果您想选择文件位置进行保存,请使用SaveFileDialog

【讨论】:

    【解决方案2】:

    FileDialog 是一个抽象类。您必须使用其实现之一。 SafeFileDialogOpenFileDialog 取决于您的需要。

    有关FileDialog 课程的更多信息,请访问MSDN

    【讨论】:

      【解决方案3】:

      FileDialog 是类,但您需要它的实例才能打开它。所以假设你使用的是OpenFileDialog,它的名字是OpenFileDialog1

      if(OpenFileDialog1.ShowDialog() != DialogResult.Cancel)
      {
          // ...
      }
      

      您通常通过调用类的构造函数 f.e: 来创建实例:

      OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
      

      您只能通过 static 的类名调用方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-01
        • 1970-01-01
        • 2021-07-29
        • 2019-01-16
        相关资源
        最近更新 更多