İstediğim şeyin doğru denetimini kullanmıyor olabilirim. Bir tabloyu kontrollerle dolduracağım ve her sütunun kendi içinde bulunan kontrollere otomatik olarak sığmasını istiyorum. Örneğin, bir metin kutusu sütunu, bir onay kutusu sütunundan daha geniş olacaktır. Farklı işletim sistemlerinin karmaşıklıkları, farklı DPI, farklı yazı tipleri vb. Nedeniyle yardımcı olabiliyorsam, ölçmek istemiyorum. Tablo, bir kaydırma çubuğuyla kontrollere uyacak şekilde yatay olarak genişleyebilir. Bu nasıl bir TableLayoutPanel ile mümkündür - veya başka bir kontrol?TableLayoutPanel boyutlandırma
Teşekkürler.
Düzenlendi eklemek için kod:
private void UpdateLocations()
{
tableLayoutPanel1.RowCount = CurrentSchedule.location.Length + 1;
tableLayoutPanel1.ColumnCount = 7;
int row = 1;
int timeWidth = TextRenderer.MeasureText("00:00:00x", tableLayoutPanel1.Font).Width;
Label lab = new Label();
lab.Text = "Location";
tableLayoutPanel1.Controls.Add(lab, 0, 0);
lab = new Label();
lab.Text = "Arrive";
tableLayoutPanel1.Controls.Add(lab, 1, 0);
lab = new Label();
lab.Text = "Depart";
tableLayoutPanel1.Controls.Add(lab, 2, 0);
lab = new Label();
lab.Text = "Pass?";
tableLayoutPanel1.Controls.Add(lab, 3, 0);
lab = new Label();
lab.Text = "Path";
tableLayoutPanel1.Controls.Add(lab, 4, 0);
lab = new Label();
lab.Text = "Plat";
tableLayoutPanel1.Controls.Add(lab, 5, 0);
lab = new Label();
lab.Text = "Line";
tableLayoutPanel1.Controls.Add(lab, 6, 0);
foreach (location loc in CurrentSchedule.location)
{
TextBox tb = new TextBox();
tb.Text = loc.locationID;
tableLayoutPanel1.Controls.Add(tb, 0, row);
tb = new TextBox();
tb.Text = loc.arrivalTime;
tb.Width = timeWidth;
tableLayoutPanel1.Controls.Add(tb, 1, row);
tb = new TextBox();
tb.Text = loc.departureTime;
tb.Width = timeWidth;
tableLayoutPanel1.Controls.Add(tb, 2, row);
CheckBox cb = new CheckBox();
cb.Checked = loc.passingTime;
tableLayoutPanel1.Controls.Add(cb, 3, row);
tb = new TextBox();
tb.Text = loc.pathCode;
tableLayoutPanel1.Controls.Add(tb, 4, row);
tb = new TextBox();
tb.Text = loc.platformCode;
tableLayoutPanel1.Controls.Add(tb, 5, row);
tb = new TextBox();
tb.Text = loc.lineCode;
tableLayoutPanel1.Controls.Add(tb, 6, row);
row++;
}
/*for (int idx = 0; idx < tableLayoutPanel1.RowCount; idx++)
{
tableLayoutPanel1.RowStyles[idx].SizeType = SizeType.AutoSize;
}
for (int idx = 0; idx < tableLayoutPanel1.ColumnCount; idx++)
{
tableLayoutPanel1.ColumnStyles[idx].SizeType = SizeType.AutoSize;
}*/
}
(Evet ağır üstlenmeden gerekiyor - Sadece ilk işe almaya çalışıyorum) bile, dışarı yorumladı bit sınırları istisnalar dışında neden
mantıklı olsa da (bana) yapmamalı. Aralık, çalışma zamanında değil, tasarım zamanında belirlediğim her şeyle sınırlı görünüyor.
Kaç sütununuz var? – CharithJ
Belirli bir sütunda yalnızca onay kutuları varsa, neden yeniden boyutlandırmaları gerekir? – CharithJ
Sütunların dinamik olarak yeniden boyutlandırılması gerekmez, ancak denetimler eklendiğinde belirli bir boyuta ayarlanmalıdır. Şu anda otomatik boyutu kullanıyorum, yani tüm sütunlar aynı genişlikte. – GeoffM