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

C# Windows窗体:从列表中选择而不创建窗体,c#,.net,winforms,user-interface,C#,.net,Winforms,User Interface,我正在编写一个控制台应用程序,它实际上有时必须使用GUI元素 特别是,需要通过GUI从字符串列表中选择一个字符串。它必须是这样的: public static string SelectString(List<string> strings) { string selectedString; // GUI part return selectedString; } 我知道ListBox,但它需要创建一个表单 有什么想法吗?您可以直接在代码中创建表单。这里

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

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

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

    // GUI part

    return selectedString;
}
我知道
ListBox
,但它需要创建一个表单


有什么想法吗?

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

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

int selectedIndex = listbox1.SelectedIndex;
为了避免硬编码,您可以在控制台应用程序中添加
表单
,只需调用表单即可:

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

在这种情况下,您可能希望将
列表框的
修饰符
属性设置为
public
,以便在对话框关闭后可以访问它。

您可以在运行时动态创建表单。@RezaAghaei,我明白了,但我必须设置尺寸、位置和所有其他内容。我想使用一些轻量级的东西,比如
FolderBrowserDialog
OpenFileDialog
。还是我错了?@DfM你是对的,你需要设置一些项目。我不认为有一个内置的项目,做你想要的。如果它是一个非常简单的表单,那么它应该不会太难。为什么不在你的控制台应用程序中添加一个表单(这不是一个问题),然后直接调用该表单呢?这样你就不必硬编码所有的细节。
Form1 frm = new Form1();
frm.ShowDialog();