Birden fazla kontrol nesnesi için if else nasıl kullanılır? (WinForms)

furisu (28) 6 yıl önce sordu

Merhaba,

Aşağıda kullandığım kodlardan sonra değeri NULL olan kontrollerin VISIBLE değerini false olarak güncellemek istiyorum.

private void gridControl1_Click(object sender, EventArgs e)
        {
            try
            {
                labelControl14.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[1]).ToString();
                labelControl15.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[2]).ToString();
                labelControl16.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[3]).ToString();
                labelControl17.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[4]).ToString();
                labelControl18.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[5]).ToString();
                labelControl19.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[6]).ToString();
                labelControl20.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[7]).ToString();
                labelControl21.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[8]).ToString();
                labelControl22.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[9]).ToString();
                labelControl23.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[10]).ToString();
                labelControl24.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[11]).ToString();
                labelControl25.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[12]).ToString();
                labelControl26.Text = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[13]).ToString();
            }
            catch { }

}

Ancak aşağıdaki gibi bir if else yöntemi biraz yorucu oluyor. Bunun yerine daha kısa ve/veya daha partik bir yol var mı?

if (labelControl14.Text == null)
{
    labelControl14.Visible = false;
}

else { }

if (labelControl15.Text == null)
{
    labelControl15.Visible = false;
}

else { }

if (labelControl16.Text == null)
{
    labelControl16.Visible = false;
}

else { }

...ve diğer kontroller...

 

Toplam 1 cevap


alattin (17095) 6 yıl önce cevapladı

Form içindeki kontroller arasında döngü ile gezinip label olan kontrolleri kontrol edebilirsin.

 foreach (Label l in this.Controls.OfType<Label>())
            {
                if (l.Text == null)
                    l.Visible = false;
            }

İf ile tek tek kontrol etmek yerine bunu dene.

alattin 6 yıl önce

Yorumları buraya yazıyoruz @furisu uzmanim.net'e hoş geldin.

furisu 6 yıl önce

Teşekkürler, hoş bulduk.