FileDialog找不到方法ShowDialog()

时间:2013-11-22 10:19:08

标签: c# .net class methods filedialog

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

enter image description here

FileDialog仅显示intellisense中的两种方法(Equals和ReferenceEquals)。代码来自一本书,因此预计此方法和属性是FileDialog类的一部分吗?

以下是代码:

    private void cmdBrowse_Click(object sender, EventArgs e   
    {
        if (FileDialog.ShowDialog() != DialogResult.Cancel)
        {
            txtLocation.Text = FileDialog.FileName;
            cmdWatch.Enabled = true;
            FileDialog.
        }
    }
编辑:我发现问题是什么,我没有在表格中加入一个锉刀,我不知道锉刀是什么,现在我记得了。 DOHH

3 个答案:

答案 0 :(得分:3)

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

假设您要选择(打开)文件,则可以使用OpenFileDialog类:

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

或者,如果要选择要保存的文件位置,请使用SaveFileDialog

答案 1 :(得分:2)

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

MSDN上提供了有关FileDialog课程的更多信息。

答案 2 :(得分:2)

FileDialog是类,但是你需要它的一个实例来打开它。因此假设您使用的是OpenFileDialog,其名称为OpenFileDialog1

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

通常通过调用类的构造函数f.e:

来创建实例
OpenFileDialog OpenFileDialog1 = new OpenFileDialog();

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