19-08-2010, 16:46
|
|
|
חבר מתאריך: 08.07.10
הודעות: 19
|
|
אמנם עבר זמן אבל אולי זה יביא תועלת למישהו, מתי שהו, איך שהו וכו'
פונקציה דינמית לגמרי מסדרת על המסך שורות שורות Labelים לפי פרמטרים: רווח בין אחד לשני, רוחב ,גובה, רשימת ערכים
קוד:
public Form1()
{
InitializeComponent();
string sKeys = @"1234567890qwertyuiopasdfghjklzxcvbnm~`!@#$%^&*()_-+=[]{}|\/?;:'"",.<>" ;
List<string> args = newList<string>();
foreach (char c in sKeys.ToCharArray())
args.Add(c.ToString());
InitControlers(1, 20, 30, args);
}
privatevoid InitControlers(int spase, int width, int height, List<string> args)
{
List<Label> ButtonsList = newList<Label>();
System.Drawing.Size lSize = new System.Drawing.Size(width, height);
int lInLine = (this.Width - spase * 2) / (lSize.Width + spase);
int iLast = (this.Width - spase * 2) - ((lSize.Width + spase) * lInLine);
for (int i = 0; i < args.Count; i++)
{
Label L = newLabel();
int iAddLeft = (i % lInLine) > iLast ? iLast : (i % lInLine);
L.Tag = i;
L.Size = lSize;
L.Text = args[i];
L.BackColor = Color.LightBlue;
L.TextAlign = ContentAlignment.TopCenter;
L.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
L.Location = new System.Drawing.Point(iAddLeft + spase + ((i % lInLine) * (lSize.Width + spase)), spase + ((i / lInLine) * (lSize.Height + spase)));
this.Controls.Add(L);
}
}
|