2012-02-21 16 views
5

私は質問があります。私は動的にWindowsフォームにコントロールの配列を追加したいのですが、次のようなコードを用意しましたが、残りはコントロールコレクションには存在しますが、フォームには表示されません。コードには何がありませんか?winformにコントロールの配列を動的に追加する

コード:

LinkLabel[] arrLbl = new LinkLabel[5]; 

for (int i = 0; i < 5; i++) 
{ 
    LinkLabel lbl = new LinkLabel(); 
    lbl.Text = "Label: " + i.ToString(); 
    arrLbl[i] = lbl; 
} 

foreach (Control c in arrLbl) 
    this.Controls.Add(c); 

答えて

15

あなたのコードが正しいです。問題は、あなたが追加しているコントロールのすべてがお互いの上に積み重なっている可能性が最も高いため、上にあるものだけを見ることができます。

追加するコンテナコントロールのタイプはわかりませんが、子コントロールの自動配置を処理するFlowLayoutPanelに追加することを検討してください。

FlowDirection propertyを設定することで、子コントロールを縦または横に「フロー」するかどうかを選択できます。

FlowLayoutPanel(または他のインテリジェントコンテナコントロール)を使用しない場合は、各子コントロールのLocation propertyを手動で設定する必要があります。

1

各コントロールのLocationプロパティを設定する必要があります。これらはすべて互いにレンダリングされています。

+0

このようにすればよいでしょう:lbl [index] .Location = new Point(x、y)。前にそれを試したが、私のために働いていない!理由は何でしょうか? –

+0

とxとyは何ですか? – Beatles1692

+0

Xは静的であり、yは以下のようにループによって突き止められました:lbl.Location = new Point(0、counter + 10); –

関連する問題