【发布时间】:2016-03-20 03:30:57
【问题描述】:
我在 winforms c# 中遇到了ComboBox 的问题。主窗口中的组合框工作正常,但我在主窗口面板中打开的组合框已损坏。奇怪的事情开始发生......我不能点击它来输入。我只能打开列表,选择一个然后输入。我也无法将光标定位在文本中间,因为它突出显示了整个文本。我在面板中打开表单发布代码:
public void otworzOkno(Form _form)
{
if (Application.OpenForms[_form.Name] != null)
{
Application.OpenForms[_form.Name].WindowState = FormWindowState.Normal;
Application.OpenForms[_form.Name].BringToFront();
}
else
{
_form.TopLevel = false;
_form.AutoScroll = true;
this.panel.Controls.Add(_form);
_form.Show();
_form.BringToFront();
}
}
解释问题的视频:https://youtu.be/PrVxFWvhPyc
【问题讨论】:
-
“坏了”?那应该是什么意思?以及为什么要使用 Application.OpenForms(从未见过这样的方法并且经常使用 Winforms)?你能解释一下你想要什么,你尝试了什么,你有什么问题吗? (即,清晰的描述和/或错误消息;通过尝试避免诸如“它不起作用”或“损坏”或类似的陈述)您应该能够通过记住给定容器来访问任何控件而不会出现任何问题(即,如果您在面板中包含控件,则容器将是该面板而不是主窗体)。
-
我得到了带有菜单和面板的主窗体。当我单击按钮时,我会在面板中打开新表单。在面板中打开的表单与组合框有一些问题。我不能点击它来写文字。当我打开下拉列表并为示例“ac”选择项目时,我无法单击中间写“abc”,因为它会突出显示整个文本。最大的问题是写在里面。我发现那是因为表单是在面板中打开的,当我“正常”以单独的形式打开它时,它可以正常工作。
-
我们一步一步来。 winforms中的基本控件是表单,而不是面板。那就是:首先你有一个表格,在里面,你可以有一个面板或 1000 或其他任何东西,但不是这样!每个窗体基本上都是一个窗口。
-
也许我在 youtube 上发布了一个视频。我们可能因为我的英语不好而误会了。我会在几秒钟内记录并发布它
-
视频?!不,不要那样做。这里问的重点不是问我,而是写下任何人(现在和将来)都可能理解的清晰想法。 SO不适用于学习基础知识。如果您不确定如何使用本网站,您应该查看帮助页面。您应该尝试自己完成所有学习(询问是一种不好的学习方式)。抱歉,我不会在这里提供更多帮助(2-3 cmets 可以,但除此之外没有其他帮助)。 PS:请注意,我们正处于“特殊日子”,这就是为什么您的问题已被赞成,但不要习惯这一点(通常,它会被反对)。