从表单转移到用户控制

时间:2009-05-21 16:36:32

标签: winforms user-controls refactoring

我有一堆表格,我嵌入在tabpages中(有些嵌入了两层和三层深),我现在怀疑它给我带来了麻烦。我被告知用户控制是更好的方法。

  • 现在我想知道我是怎么回事 能够快速完成这一点 可能的。

  • 是否像复制和粘贴一样简单?

  • 有没有人做过类似的事情 此?

我有大约40个我需要移动的表格,而且没有太多时间去做,所以非常感谢任何帮助。

编辑1

这是我嵌入表单的方式:

        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);
    }

1 个答案:

答案 0 :(得分:8)

不确定它是否是“最佳”,但这可能是效率最高的。将类更改为从UserControl而不是Form继承。然后修复编译器错误,如果/当你得到任何错误(见下面的注2)。

注意1:如果您没有使用版本控制,请在执行此类激烈操作之前开始使用它。如果东西走得太远,你会希望能够回去。

注意2:如果您使用Form中未实现的UserControl的任何特定事件或属性,则必须考虑解决方案。一些属性(例如Icon)可以安全地忽略(=从设计器文件中删除该行)。

注意3:如果您将表单用作某个地方的实际表单,您还需要一个使用新创建的UserControl的表单。

,你最有可能在命名方面遇到麻烦