2

我已将所有启动程序添加到列表框中。选择项目并单击按钮时如何打开文件?

列表框代码:

private void readfiles()
{
    string startfolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

    var files = Directory.GetFiles(startfolder).Where(name => !name.EndsWith(".ini"));

    foreach (string file in files)
    {
        startupinfo.Items.Add(System.IO.Path.GetFileName(file));
    }
}
4

4 回答 4

2

我不知道您要打开什么文件类型,但这是您获取所选项目的方式。

Dictionary<string, string> startupinfoDict = new Dictionary<string, string>();
    private void readfiles()
    {
        string startfolder = Environment.GetFolderPath(Environment.SpecialFolder.Startup);

        var files = Directory.GetFiles(startfolder).Where(name => !name.EndsWith(".ini"));

        foreach (string file in files)
        {
            startupinfo.Items.Add(Path.GetFileNameWithoutExtension(file));
            startupinfoDict.Add(Path.GetFileNameWithoutExtension(file), file);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem != null)
        {
            string s = listBox1.SelectedItem.ToString();

            if (startupinfoDict.ContainsKey(s))
            {
                Process.Start(startupinfoDict[s]);
            }
        }
    }
于 2013-04-10T23:37:33.100 回答
1

获取当前选择的列表框项并假设应用程序与文件耦合(使用扩展名):

Process.Start(fileName);
于 2013-04-10T23:38:10.397 回答
0

SelectedValue您可以通过使用列表框的属性来获取所选项目。

您可以使用Process.Start.

于 2013-04-10T23:36:02.520 回答
0

您将启动一个新进程,声明要在您的按钮单击处理程序中执行/打开的文件的路径:

Process.Start(@" <path to file> ");

如果列表框中的选定值是文件路径,则:

Process.Start(<name of list box>.SelectedValue);

编辑:

改变你的 foreach 循环如下:

foreach (string file in files)
{
    startupinfo.Items.Add(System.IO.Path.GetFullPath(file) + @"\" + System.IO.Path.GetFileName(file));
}
于 2013-04-10T23:41:53.433 回答