【问题标题】:C# Textbox in MDI Child Form - Strange BehaviourMDI 子窗体中的 C# 文本框 - 奇怪的行为
【发布时间】:2016-02-23 23:03:35
【问题描述】:

我遇到了这个以前从未遇到过的奇怪问题。我在网上做了很多搜索,发现有人有同样的问题,但没有适当的修复(至少我找不到)。

基本上,我有一个 C# WinForm 应用程序启动子窗体并将它们添加到主窗体的控件中(因此子窗体不是作为单独的窗口启动,而是在主应用程序窗口中启动)。

奇怪的行为是子窗体上的任何 TextBox 控件都不接受任何鼠标输入。如果我尝试在 TextBox 中单击以将光标放在文本中的特定点,则光标总是会转到第一个字符。我可以使用键盘移动,但不能使用鼠标。

我已经将主窗体设置为MDI Container(this.IsMdiContainer = true),并且也正确设置了子窗体的参数:

childForm.TopLevel = false;
childForm.AutoScroll = true;
childform.Parent = parentForm;
parentForm.Controls.Add(childForm);

我最初在面板中加载了 childForm,但由于面板控件没有 IsMdiContainer 参数而删除了面板,但在主窗体中加载它似乎也不起作用。奇怪,伙计。很奇怪。

有什么提示吗?

【问题讨论】:

  • and have also set the parameters of the child form correctly: 如果 childForm 是 mdi 子级,则必须设置 childForm.MdiParent 属性。 MDI 子窗体也需要一个正常大小的边框。
  • 谢谢伙计。我们总是想念一些小事,对吧? :)

标签: c# forms winforms


【解决方案1】:

它的不是父级它的 MDIParent

childForm.MdiParent = this; //(or parentForm)

【讨论】:

  • 如果我进行该更改,我最终会遇到如下异常:“无法将表单添加到具有有效 MDI 父级的 Controls 集合中”
  • 好的,我删除了 this.Controls.Add(childForm) 现在它可以工作了。我想一旦我设置了 MdiParent 参数,childForm 就不再需要手动添加到 parentForm 控件集合中了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 2015-04-05
  • 1970-01-01
相关资源
最近更新 更多