2013-02-18 75 views
0

在C#中,我试图动态地将复选框添加到窗体上的选项卡上。我试过AutoSize属性,但是我的一些文字太长了。该x.Size.Width将返回:在动态添加复选框以形成时无法调整复选框

不能修改的“System.Windows.Froms.Control.Size” 的返回值,因为它它不是一个变量

我已经经历了很多的论坛搜索似乎无法找到答案。有任何想法吗?的

foreach (CheckBoxes i in main) 
      { 
       CheckBox x = new CheckBox(); 
       x.Text = i.Data; 
       x.Checked = i.Condition; 
       x.Location = new Point(main_start_location_x, main_start_location_y); 
       x.Size.Width = 570; 
       tabControl1.TabPages["main_checklist_tab"].Controls.Add(x); 
       main_start_location_y += 40; 
      } 
+1

尝试设置使用'Size'对象 – 2013-02-18 22:33:36

+0

的尺寸,即'x.Size =新尺寸(...)',而不是计算并设置每个复选框的“位置”,并将它们放在布局面板中,如“FlowLayoutPanel”或“TableLayoutPanel”。 – 2013-02-18 22:51:25

回答

2

您必须使用控件的WidthHeight性质或Size属性设置控件的大小,而不是WidthSize财产Height,因为这是按值传递,将没有任何效果。

1)Control.Size = new Size(width, height);

2)Control.Width = width;

+0

谢谢 - 我不知道为什么我没有想到之前:) – Wheeler 2013-02-18 22:47:03

+0

不客气!发生在我们所有人身上;) – 2013-02-18 23:04:30

1

代替:

x.Size.Width = 570; 

使用此:

x.Width = 570; 

,如果你想一次设置的整机尺寸,这样做:

x.Size = new Size(570, 20); 

或本:

x.Width = 570; 
x.Height = 20; 
+0

真棒 - 感谢您的快速响应!我不知道为什么我没有想到之前:) – Wheeler 2013-02-18 22:48:03