我已经在Visual Studio 2010中的c#项目中工作了几个月(它与相机,电源和运动控制接口)。有一个表单上有许多控件(单选按钮,按钮,文本框,位图显示......)。现在我想把所有这些放在一个标签上,这样我就可以有另一个标签。这样第二个选项卡可以包含所有默认设置(例如,端口号,波特率,积分时间,路径名......)。
这可行吗?有没有办法剪切和粘贴或点击并拖动?
更新: 我创建了一个表单,在其上放置一个按钮,单击该按钮时会显示一个带有" Hello World"的消息框。然后我在表单中添加了一个选项卡控件,并将该按钮拖到第一个选项卡上。按钮仍然以相同的方式运行,单击时显示消息框。
所以在我的大表格上,我添加了一个tabcontrol。如果没有调整大小,我选择了all,然后取消选择tabcontrol,然后将所有内容拖到选项卡上。然后我移动了选项卡控件并调整了它的大小,然后迭代调整选项卡窗口的大小并移动所有控件。这工作,除了图片框控件以某种方式调整大小,因此它们大于屏幕宽度。调整了图片框的大小,一切正常。 (也许我只是需要鼓励尝试一下......对不起,如果不是最好的问题:)。
要在代码中执行此操作,请在Form1.Designer.cs中添加:
this.tabPage1.Controls.Add(this.button1);
但是,我必须为每个控件(在Designer.cs中大约200个控件)执行此操作。
答案 0 :(得分:2)
通常可以通过编辑.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);
通常应该这样做。控件可能放错了,大多数都会被隐藏,直到您增加选项卡控件的大小,但这些是可以修复的小问题。
PS。我知道你已经解决了你的问题,但是我发布这个答案,以防将来可以帮助你或其他人。