如何在不同的上下文中使用变量?

小黄人
    private void browsebtn_Click(object sender, EventArgs e)
    {
        OpenFileDialog fdlg = new OpenFileDialog();
        fdlg.Title = "Select Song";
        fdlg.InitialDirectory = @"c:\";
        fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
        fdlg.FilterIndex = 2;
        fdlg.RestoreDirectory = true;
        if (fdlg.ShowDialog() == DialogResult.OK)
        {
            filedialoglbl.Text = fdlg.FileName;
        }
    }

    private void runbtn_Click(object sender, EventArgs e)
    {
        var Path = fdlg.FileName;
        var pi = new System.Diagnostics.ProcessStartInfo(Path)
        {
            Arguments = Path.GetFileName(Path),
            UseShellExecute = true,
            WorkingDirectory = Path.GetDirectoryName(Path),
            FileName = "C:\\relax.exe",
            Verb = "OPEN"
        };
        System.Diagnostics.Process.Start(pi);
    }
}

如您所见,我正在尝试选择一个文件并使用该文件运行另一个程序,但我不想使用 Windows 默认值。

我的错误在

var Path = fdlg.FileName;

问题是 fdlg 不在同一上下文中,我需要使用之前选择的目录,有关如何执行此操作的任何想法?

从我试过的答案来看:

    private OpenFileDialog fdlg = new OpenFileDialog();
    private void browsebtn_Click(object sender, EventArgs e)
    {
        fdlg.Title = "Select Song";
        fdlg.InitialDirectory = @"c:\";
        fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
        fdlg.FilterIndex = 2;
        fdlg.RestoreDirectory = true;
        if (fdlg.ShowDialog() == DialogResult.OK)
        {
            filedialoglbl.Text = fdlg.FileName;
        }
    }

    private void runbtn_Click(object sender, EventArgs e)
    {
        var Path = fdlg.Text;
        var pi = new System.Diagnostics.ProcessStartInfo(Path)
        {
            Arguments = Path.GetFileName(Path),
            UseShellExecute = true,
            WorkingDirectory = Path.GetDirectoryName(Path),
            FileName = "C:\\relax.exe",
            Verb = "OPEN"
        };
        System.Diagnostics.Process.Start(pi);
    }

并且我收到一条错误消息,指出“OpenFileDialog”没有“Text”的定义或扩展方法以及类中的行:

private OpenFileDialog fdlg = new OpenFileDialog();

我收到一个新错误,指出“GetFileName”和“GetDirectoryName”在“string”中没有定义或扩展方法

编辑

我将路径重命名为目录但同样的错误

        private void runbtn_Click(object sender, EventArgs e)
    {
        var directory =filedialoglbl.Text;
        var pi = new System.Diagnostics.ProcessStartInfo(directory)
        {
            Arguments = directory.GetFileName(directory),
            UseShellExecute = true,
            WorkingDirectory = directory.GetDirectoryName(directory),
            FileName = "C:\\relax.exe",
            Verb = "OPEN"
        };
        System.Diagnostics.Process.Start(pi);
    }
阿尔法75

您在 runbtn_Click 方法中使用对话框仅用于FileName. 您将其保存到名为 的标签中filedialoglbl.Text用它。

private void browsebtn_Click(object sender, EventArgs e)
{
    OpenFileDialog fdlg = new OpenFileDialog();
    fdlg.Title = "Select Song";
    fdlg.InitialDirectory = @"c:\";
    fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
    fdlg.FilterIndex = 2;
    fdlg.RestoreDirectory = true;
    if (fdlg.ShowDialog() == DialogResult.OK)
    {
        filedialoglbl.Text = fdlg.FileName;
    }
}

private void runbtn_Click(object sender, EventArgs e)
{
    var path = filedialoglbl.Text;
    var pi = new System.Diagnostics.ProcessStartInfo(path)
    {
        Arguments = Path.GetFileName(path),
        UseShellExecute = true,
        WorkingDirectory = Path.GetDirectoryName(path),
        FileName = "C:\\relax.exe",
        Verb = "OPEN"
    };
    System.Diagnostics.Process.Start(pi);
}

编辑

您不能使用大写的 Path ,因为您正在隐藏 Path 类并且您不能使用它们的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在特定上下文中使用querySelectorAll

如何在测试上下文中使用 LocalizationUtility

如何在Microsoft Access的不同上下文中在VBA中使用参数?

如何在不同的上下文中使用es6构造函数指令

如何在C#中使用其他上下文中的变量

如何在安全上下文中使用@Autowiring从应用程序上下文中调用bean

在For循环变量上下文中使用不同的字母-Javascript

在Puppeteer中使用page。$ eval()时,如何在浏览器上下文中放置变量?

如何在 puppeteer $$eval 函数中使用浏览器和节点上下文中的变量?

如何在静态上下文中使用带有上下文参数的类而不引起内存泄漏?

如何在同步上下文中的arrow-kt中使用IO组合

如何在iframe上下文中使用jQuery方法

如何在非通用上下文中使用Guava Optionals?

如何在Jenkins Job DSL插件的上下文中使用共享/通用的常规方法

您如何在FnMut上下文中使用盒装闭包?

如何在路径的上下文中使用“〜”(波浪号)?

如何在Spring Cloud Stream的事务上下文中使用MessageChannel?

如何在Either monad的上下文中使用Data.Map.lookup?

如何在安全上下文中使用不安全代码?

如何在Ruby的陷阱上下文中使用Redis调用?

如何在PHP中使用DOMXPath在特定上下文中查找元素?

如何在静态Web上下文中使用React Router生产?

如何在可查询上下文中使用子句除外

如何在vuejs上下文中使用color-thief

如何在constexpr上下文中使用if-constexpt比较string_view

在Python中,如何在共享上下文中使用许多exec调用?

如何在乳胶中的图形上下文中使用[@ref]?

如何在 MERN 堆栈应用程序中使用钩子更新上下文中的状态

如何在Django中使全局上下文变量