Bazen uygulama çalışma zamanında(runtime) formdaki kontrollerin bazı özelliklerini kullanıcıya yetkisine vermek isteyebiliriz. Runtime kontrol konusuna giren bu makaleyi bir örnekle renklendirmek istiyorum.
Örneğimizden yola çıkarak; çalışan form üzerindeki label kontrolünün adını, fontunu veya font boyutunu değiştirmek istersek.
Resimdeki gibi bir form tasarlayalım ve konuyu pekiştirelim. Forma; bir adet label, textbox, combobox ve numericupdown kontrollerini ekledikten sonra kodlamaya geçebiliriz.
Kontrollerin ana isimlerini değiştirmeden olduğu gibi
ulaştım.
[cc lang=”c#”]private void textBox1_TextChanged(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
} [/cc]
Burada textbox’ımıza çift tıklayıp TextChanged olayına yazdığımızda yapılmak istenen çalışma anında textbox’a girilen değer aynı anda label da gözükmesi.
[cc lang=”c#”] System.Drawing.Text.InstalledFontCollection yazitipi = new System.Drawing.Text.InstalledFontCollection();
foreach (FontFamily eklenen in yazitipi.Families)
{
comboBox1.Items.Add(eklenen.Name);
}
numericUpDown1.Minimum = 8;
numericUpDown1.Maximum = 80;[/cc]
Fontunu ve font büyüklüğü değiştirme kontrollerine geçmeden önce formun load olayına(form boş alanına çift tıklayarak girilen kısıma yani başlangıçtaki kısıma) sistemdeki, windows’un yazı font isimlerini combobox içine aktarıyoruz. Bunun haricinde numericUpDown1 kontrolünün maksimum ve minimun değerlerini giriyoruz.(isteğe bağlı)
[cc lang=”c#”] private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Font = new Font(comboBox1.Text, label1.Font.Size);
}[/cc]
Combobox’ın SelectedIndexChanged olayına seçilen font ismini alarak font özelliğini ekliyoruz.
[cc lang=”c#”] private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
int deger = int.Parse(numericUpDown1.Value.ToString());
label1.Font = new Font(label1.Font.FontFamily.Name, deger);
} [/cc]
Son olarak numericUpDown1 kontrolünün ValueChanged olayına girilen sayı değerlerini label font size özelliğine yazıyoruz.