2016-10-05 4 views
0

Ich versuche, ein Label Raster in Windows Forms zu machen, aber nur eine der Spalten wird angezeigt:Warum wird diese Etikettenmatrix nicht richtig angezeigt?

rows = columns = 20; 
letters = new Label[rows, columns]; 
for (int i = 0; i < rows; i++) 
{ 
    for (int j = 0; j < columns; j++) 
    { 
     letters[i, j] = new Label(); 
     letters[i, j].Parent = this; 
     letters[i, j].Name = i + "_" + j; 
     letters[i, j].TextAlign = ContentAlignment.MiddleCenter; 
     letters[i, j].Location = new Point(20 + 20 * i, 20 + 20 * j); 
     letters[i, j].Visible = true; 
     letters[i, j].Text = "A"; 
    } 
} 

enter image description here

+0

haben Sie versucht, mit dem Debugger zu sehen, wo Sie falsch liegen ..? – MethodMan

+2

Verwenden Sie ein 'TableLayoutPanel', anstatt zu versuchen, Ihre Steuerelemente manuell anzuordnen. Auch wenn Sie etwas Text in einem Gitter-Layout anzeigen möchten, ist 'DataGridView' für Sie geeignet. –

+0

@MethodMan Ich habe jetzt, und ich und j haben kein Problem – Sponja

Antwort

2

Sie haben vergessen, eine Size Eigenschaft zuweisen, so enthalten die Etiketten nur ein Standardgröße (mit großem Width), die die anderen überlappt.

// ... 
letters[i, j].Size = new Size(20, 20); 
// ... 
+0

Danke, es funktioniert jetzt! – Sponja

Verwandte Themen