将窗体上的控件移动到选项卡上

本文关键字:选项 移动 控件 窗体 | 更新日期: 2023-09-27 18:10:22

我已经在Visual Studio 2010中用c#做了几个月的项目(它与相机、电源和运动控制接口)。有一个带有许多控件的表单(单选按钮、按钮、文本框、位图显示……)现在我想把所有这些放在一个标签上,这样我就可以有另一个标签了。这样,第二个选项卡上就可以有所有的默认设置(例如,端口号,波特率,集成时间,路径名…)。

这可行吗?是否有剪切和粘贴或点击和拖动的方法?

更新:我创建了一个表单,在上面放了一个按钮,点击后会显示一个消息框,上面写着"Hello World"。然后我给表单添加了一个选项卡控件,并将按钮拖到第一个选项卡上。该按钮仍然以相同的方式工作,当单击时显示消息框。

在我的大表单上,我添加了一个tabcontrol。没有调整它的大小,我做了一个全选,然后取消选择tabcontrol,然后把所有东西拖到标签上。然后我移动选项卡控件并调整其大小,然后迭代地调整选项卡窗口的大小并移动所有控件。这是有效的,除了图片框控件不知何故调整了大小,使它们大于屏幕宽度。调整图片框的大小,一切工作。(也许我只是需要鼓励去尝试一下……对不起,如果不是最好的问题:)。

在Form1.Designer.cs中可以添加:
 this.tabPage1.Controls.Add(this.button1);

但是,我必须对每个控件(Designer.cs中大约有200个)都这样做。

将窗体上的控件移动到选项卡上

这通常可以通过编辑. designer .cs文件来完成。首先,确保你做了一个备份,以防出现严重的错误。放置选项卡控件并为其添加单个控件(按钮或任何东西)。然后检查. designer .cs文件。正如您自己指出的那样,您将看到这样一行:

this.tabPage1.Controls.Add(this.button1);

对于表单上现有的控件,将有一堆像这样的行:

 this.Controls.Add(this.meErrorReport);
 this.Controls.Add(this.peWarningSign);
 this.Controls.Add(this.meHeaderText);
 this.Controls.Add(this.btnClose);

那么你要做的就是剪切这些行(不包括制表控件的行!),并将它们粘贴到上面所示的行后面,并执行查找和替换操作来更改它们,使它们与第一行匹配:

 this.tabPage1.Controls.Add(this.meErrorReport);
 this.tabPage1.Controls.Add(this.peWarningSign);
 this.tabPage1.Controls.Add(this.meHeaderText);
 this.tabPage1.Controls.Add(this.btnClose);

这通常可以达到目的。控件的位置可能是错误的,并且大多数控件将被隐藏,直到您增加选项卡控件的大小,但这些都是可以修复的小问题。

p。我知道你已经解决了你的问题,但我发布这个答案,以防它可以帮助你,或其他人,在未来。

我发现最简单的方法是将所有想要移动到TabControl中的控件"Cut"。添加TabControl,然后将cut控件粘贴到TabControl中。