从表单转移到用户控制

Ref*_*din 1 refactoring user-controls winforms

我有一堆表格,我嵌入在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);
    }
Run Code Online (Sandbox Code Playgroud)

lc.*_*lc. 8

不确定它是否是"最好的",但这可能是最有效的.更改要继承的类UserControl而不是Form.然后修复编译器错误,如果/当你得到任何错误(见下面的注2).

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

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

注3:如果您在某处使用表单作为实际表单,您还需要一个使用新创建的UserControl的表单.你最有可能在命名方面遇到麻烦,所以要保持敏锐的眼光.