2012-02-23 11 views
1

WinFormアプリケーションのフォームに「x」個のラベルを配置する必要があります。以下の関数はすでにそれを行います。私が欠けているのは、ラベルの寸法を増やすことなく、各ラベル間のギャップを広げる能力です。私はそれがおそらく単純なものだと知っていますが、私の人生にとってはわかりません。私はそのような愚かな質問のために事前に謝罪します。グリッド内の動的に追加されるラベルの間隔を広げる方法を教えてください。

private void AddUserControl() 
{ 
    int ucHeight = 60; 
    int ucWidth = 320; 
    int spacer = 20; 
    int start_x = 10; 
    int start_y = 10; 
    int NumOfRows = 6; 
    int NumOfColumns = 3; 
    int totalProblems = 17; 
    int ucCounter = 0; 

    for (int x = 0; x < NumOfRows; x++) 
    { 
     for (int y = 0; y < NumOfColumns; y++) 
     { 
      if (ucCounter < totalProblems) 
      { 
       Label myLabel = new Label(); 
       myLabel.Top = start_x + (x * ucHeight + spacer); 
       myLabel.Left = start_y + (y * ucWidth + spacer); 
       myLabel.Width = ucWidth; 
       myLabel.Height = ucHeight; 
       this.Controls.Add(myLabel); 
       ucCounter++; 
      } 
     } 
    } 
} 
+0

gabの代わりにgapと言っていますか? – om471987

答えて

1
myLabel.Left = start_y + (y * ucWidth + spacer); 

あなたの括弧は、間違った場所にあります。何をしたい

var real_start_y = start_y + spacer; 
myLabel.Left = real_start_y + (y * ucWidth); 

myLabel.Left = start_y + y * (ucWidth + spacer); 

ので、すべての列が前のものからspacerの分離を追加することです:にそれは同等です。

Topを計算する際に同じ問題があります。

+0

私のエラーをキャッチするためにありがとう。私はそんなにばかな気分だ。 – TalShyar

1

私はあなたがおそらくパディングを探していると思いますが、this link (MSDN)をチェックアウトして、あなたの要件にぴったりのものを決定することができるはずです。

+0

混乱については申し訳ありませんが、これはWPFではなくWinFormにあります。私はWinFormタグを使用して以来、それは明らかだろうと思った。 – TalShyar

+0

WPFやWinFormsとは関係がありません。パディング、余白、レイアウトは、Web開発だけでなく、両方の場所でも関係します。私はそれが概念をかなりうまく説明していると思うので、単にその記事をリンクしました。頑張って! –

+0

ああ。ありがとう。その記事をもっと慎重に読ませてください。 – TalShyar

関連する問題