【问题标题】:In Windows forms application location of controls changed after adding this control on form在窗体上添加此控件后,在 Windows 窗体应用程序中控件的位置发生了变化
【发布时间】:2012-08-08 18:18:10
【问题描述】:

我正在使用 Visual Studio 2010 和 C# 开发一个 Windows 窗体应用程序。我创建了一个用户控件来显示详细信息屏幕。当我在另一个表单或面板容器中的用户控件上添加此用户控件时,控件位置会更改。我使用了 doc 属性,但仍然看到这个问题。

PanelCancelledConainer.Controls.Clear();
InquiryDetailsCls.InquiryID = Convert.ToInt32(GridInquiry.SelectedRows[0].Cells[0].Value.ToString());
CtrlInqDetails inqDetails = new CtrlInqDetails(InquiryDetailsCls.InquiryID, 1);
inqDetails.Dock = DockStyle.Fill;
PanelCancelledConainer.Controls.Add(inqDetails);

如何使用户控件看起来像在设计模式下一样?

从评论中添加的图片:

【问题讨论】:

  • 如果没有看到很难分辨的差异,您能否发布一些屏幕截图的链接,以便我们了解正在发生的事情。如果您这样做,我会将它们添加到您的问题中。
  • 请在下面找到用户控件设计视图的屏幕截图dishagroup.in/images/control1.jpg,下一个是用户控件在以另一种形式消费后的屏幕截图dishagroup.in/images/control2.jpg 文本框和标签的间距增加,整个表单视图受到干扰。

标签: c# .net winforms user-controls position


【解决方案1】:

尝试在容器上设置用户控件的索引位置:

PanelCancelledConainer.Controls.SetChildIndex(inqDetails, 0); 

你会确定这是第一个孩子。

【讨论】:

  • 这无济于事,请在下面找到用户控件设计视图的屏幕截图dishagroup.in/images/control1.jpg,接下来是用户控件在以另一种形式消费后的屏幕截图dishagroup.in/images/control2.jpg 文本框和标签中的间距增加且完整表单视图受到干扰。
  • 我确实喜欢你一个带有 tabcontrol 的用户控件,当我在 windows 窗体上设置它时它可以工作。为了解决您的问题,我修改了容器的字体并修改了用户控件的字体,因此在您的容器中设置与在您的用户容器中相同的字体,它将起作用;-)
  • 在我的场景中,我创建了包含选项卡控件的用户控件(比如 DetailControl),并且此 DetailControl 放置在另一个用户控件上。 DetailControl 的大小等于我放置的容器。如上图所示,它仍然会增加标签和文本框的间距。
  • 在你的截图中,我们可以看到标题以不同的字体出现(第一个没有粗体,第二个粗体和标题更大)
  • 我更改了字体,但问题仍然存在,当使用控件时,标签和文本框之间的间距会增加,并且由于这个完整的表单没有显示
猜你喜欢
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多