Windows窗体:从列表中选择而不创建窗体

时间:2017-05-12 21:52:51

标签: c# .net winforms user-interface

我正在编写一个控制台应用程序,实际上有时候必须使用GUI元素。

特别是,需要通过GUI执行从字符串列表中选择一个字符串。它必须是这样的:

public static string SelectString(List<string> strings)
{
    string selectedString;

    // GUI part

    return selectedString;
}

是否可以像使用FolderBrowserDialog一样使用它?例如,我使用以下代码选择文件夹:

public static string SelectFolder(string description)
{
    using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
    {
        folderBrowserDialog.Description = description;

        return folderBrowserDialog.ShowDialog() == DialogResult.OK
            ? folderBrowserDialog.SelectedPath
            : null;
    }
}

我知道ListBox,但需要创建表单。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以直接在代码中创建表单。这是一个非常简单的例子。您可能想要添加OK按钮。

Form frm = new Form();
ListBox listbox1 = new ListBox();
frm.Controls.Add(listbox1);
listbox1.Dock = DockStyle.Fill;
frm.ShowDialog();

int selectedIndex = listbox1.SelectedIndex;

为避免硬编码,您可以在控制台应用中添加Form,然后只需调出表单:

Form1 frm = new Form1();
frm.ShowDialog();

在这种情况下,您可能需要将Modifier的{​​{1}}属性设置为ListBox,以便在对话框关闭后可以访问它。