2013-02-18 89 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