我有一堆表格,我嵌入在tabpages中(有些嵌入了两层和三层深),我现在怀疑它给我带来了麻烦。我被告知用户控制是更好的方法。
现在我想知道我是怎么回事 能够快速完成这一点 可能的。
是否像复制和粘贴一样简单?
我有大约40个我需要移动的表格,而且没有太多时间去做,所以非常感谢任何帮助。
这是我嵌入表单的方式:
public static void ShowFormInContainerControl(Control ctl, Form frm)
{
frm.TopLevel = false;
frm.FormBorderStyle = FormBorderStyle.None;
frm.Dock = DockStyle.Fill;
frm.Visible = true;
ctl.Controls.Add(frm);
}
public static void DockControl(this Control control, UserControl userControl)
{
userControl.Dock = DockStyle.Fill;
control.Controls.Clear();
control.Controls.Add(userControl);
}
答案 0 :(得分:8)
不确定它是否是“最佳”,但这可能是效率最高的。将类更改为从UserControl
而不是Form
继承。然后修复编译器错误,如果/当你得到任何错误(见下面的注2)。
注意1:如果您没有使用版本控制,请在执行此类激烈操作之前开始使用它。如果东西走得太远,你会希望能够回去。
注意2:如果您使用Form
中未实现的UserControl
的任何特定事件或属性,则必须考虑解决方案。一些属性(例如Icon
)可以安全地忽略(=从设计器文件中删除该行)。
注意3:如果您将表单用作某个地方的实际表单,您还需要一个使用新创建的UserControl的表单。
,你最有可能在命名方面遇到麻烦