列表框不显示

Listbox not showing

所以这可能是一个简单的问题,但我刚刚开始学习 C# 的精妙艺术,所以如果我遇到了一点点,请原谅我 'green'。

我一直在试验盒子。确切地说,最近的列表框。在我的 class 中,我有以下内容:

ListBox lb = new ListBox();

lb.Location = new System.Drawing.Point(12, 12);
lb.Name = "ListBox1";
lb.Size = new System.Drawing.Size(245, 200);
lb.BackColor = System.Drawing.Color.Blue;
lb.ForeColor = System.Drawing.Color.Green;  

lb.Items.Add("Element One");
lb.Items.Add("Element Two");
lb.Items.Add("Element Two");

lb.Show();

现在,我一直在假设 ListBox 会以某种方式像 MessageBoxes 那样工作。

我有一个:

var confirmResult = MessageBox.Show("Question asking about " + variable + "?", "TitleHere", MessageBoxButtons.YesNo);

...我认为 ListBox 的工作原理大致相同?

问题是,它没有。

MessageBox 弹出,但 ListBox 却不见踪影。

我是不是漏掉了什么?

更新:

好的,所以 Form 是他们说的方法。

我试过了:

ListBox lb = new ListBox();

lb.Location = new System.Drawing.Point(12, 12);
lb.Name = "ListBox1";
lb.Size = new System.Drawing.Size(245, 200);
lb.BackColor = System.Drawing.Color.Blue;
lb.ForeColor = System.Drawing.Color.Green;  

lb.Items.Add("Element One");
lb.Items.Add("Element Two");
lb.Items.Add("Element Two");

Form f = new Form();
f.Controls.Add(lb);

但是这仍然没有显示我的漂亮盒子。

请指教

您需要将列表框添加到表单的容器中(例如面板或表单本身)。

例如

MyForm.Controls.Add(lb)

panel1.Controls.Add(lb)

你不需要做

lb.Show();

如 Microsoft msdn 上所写,message box:

Displays a message box that can contain text, buttons, and symbols that inform and instruct the user.

ListBox:

Represents a Windows control to display a list of items.

因此您不需要容器(如 Form)来显示消息框,但您需要一个容器(如 ListBox)来显示控件。

更新:

您可能还应该添加如下内容:

form.ShowDialog();

除了 ListBox microsoft 的页面之外,您还应该查看一个关于 Form class 的页面。如果您滚动到页面底部,他们会提供简洁的示例。