1. Ana Sayfa
  2. C Sharp

C# User Control Nedir Nasıl Kullanılır

C# User Control Nedir Nasıl Kullanılır
C# User Control Nedir Nasıl Kullanılır
+ - 4

Merhaba  arkadaşlar. Bu dersimizde C# User Control Nedir Nasıl Kullanılır ‘nı anlatmaya çalışacağım. User Control nesnesi ile bir nevi kendi özel nesnemizi yapabiliyoruz. Şimdi bunu nasıl yapacağımızı görelim.

C# User Control Nedir Nasıl Kullanılır

Şimdi bir senaryo üzerinden devam edelim…

Örneğin projelerinizde sürekli olarak kullanıcı seçim işlemi kullanıyorsunuz diyelim ve usercontol kullanmadan nasıl yaptığımıza bakalım.

Ben şöyle yapıyorum;

Bir label, iki textbox ve buton ekliyorum. Butona tıkladığımda bir liste açıyorum ve o listeden, üzerine çift tıkladığım kullanıcının kodunu ve adını alıp textboxlara yazıyorum. Bu işlemi her kullanmak istediğimde 5 tane nesne ekliyorum ve bir kaç satırda olsa kod yazıyorum. Projemde 100 form olsa yarısınında bu kullanıcı seçme işlemini kullansam 250 tane nesne ve en az 200 satır kod yazmam gerekecek. Birde üzerine bu kullanıcı seçim işlemini bir sebepten değiştirmem gerekse… Gereksiz iş yükünü tahmin edebilirsiniz. Üstelik bu en basit düzeyde bir örnektir.

Bu ayarladığımız User Control nesnesi, projeyi build ettiğimizde tasarım ekranında toolbox’ta görünür ve sürükleyip forma bırakarak kullanabiliriz. Şimdi bu dünya harikasını nasıl kullanacağımızı görelim.

 

C# User Control Nedir Nasıl Kullanılır

Öncelikle bu nesneleri bir arada tutmak için bir klasör açmayı öneriyorum. Bu klasörümüzün adını da User_Controls olarak ayarlayalım. Bu klasör üzerinde sağ tıklayıp Add diyoruz sonra New Item diyoruz ve listeden User Control‘u seçiyoruz. Türkçe kullananlar Kullanıcı Denetimi olarak aratabilirler.

User Control ‘ü ekledikten sonra otomatik açılacaktır. Şöyle görünür.

C# User Control Kullanımı

Gördüğünüz gibi bir form gibi görünmüyor. Şimdi yukarıda verdiğim senaryoyu yapalım. Yaptığım tasarım aşağıdaki gibi…

C# User Control Kullanımı 2

Bu örnekte kullanıcı listesi vs yapamayacağım için sadece butona tıkladığımız zaman boş bir form açalım. Yeni bir form eklemeye gerek yok. Basit bir örnek yapacağımızdan dolayı kod ile bir form üretelim. Burada textbox’ların ve button’un Prooerties’ine geliyoruz ve Modifiers özelliklerini Public olarak değiştiriyoruz. Bunu yapmazsak bu nesnelere ulaşamayız.

NOT: Bu kodlar UserControl içindeki butonun click eventidir. Aşağıdaki kodlarda gördüğünüz gibi. Bu event form1’in içinde değil usercontrol1 nesnesi içindedir.

Daha net anlaşılması için sadece ilgili kod bloklarını değil arka plandaki tüm kodları atacağım.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace mustafabukulmez_com_dersler._026_UserControl_Kullanimi
{
    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

        private void btn_kullanici_sec_Click(object sender, EventArgs e)
        {
            Form form1 = new Form();
            form1.Height = 300;
            form1.Width = 300;
            form1.ShowDialog();
        }
    }
}

UserControl’ü oluşturduk ve projeyi bir kere build edelim ve ToolBox’u kontrol edelim.

NOT: Tasarım ekranındaki Toolbox ile Kod ekranındaki ToolBox aynı değildir. Tasarım ekranında nesneler görünürken Kod ekranında, saklanılan kodlar görünür. ;)

C# User Control Kullanımı 3

C# User Control Kullanımı

Görselde gördüğünüz gibi hazırladığımız UserControl, toolbox’a eklendi. Şimdi normal bir nesne gibi sürükleyip forma bırakacağız.

Gördüğünüz gibi 4 nesne tek bir nesne gibi davranıyor. Sanki bir panel içine alınmış gibiler.

UserControl’daki butona bir click eventini zaten vermiştik. Ancak user control’ü forma ekledikten sonra butona başka bir iş vermek isteyebiliriz. Bu durumda form1’in Load eventi içinde bir event tanımlaması yapmamız gerekmektedir. Bu tanımlamayı yaptıktan sonra butona ikinci bir click eventi yüklemiş oluruz.

NOT: Bu iki event de aktif olarak kullanılır. Önce içteki yani usercontol nesnesi içindeki Click eventi sonra dıştaki yani form1 adlı formda tanımladığımız Click eventi çalışır. Kısacası iki Click eventine de ard arda çalışır.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace mustafabukulmez_com_dersler._026_UserControl_Kullanimi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            userControl11.btn_kullanici_sec.Click += Btn_kullanici_sec_Click;
        }

        private void Btn_kullanici_sec_Click(object sender, EventArgs e)
        {
            userControl11.txt_kulkod.Text = "0";
            userControl11.txt_kul_adi.Text = "Mustafa BÜKÜLMEZ";
        }
    }
}

Yukarıdaki kodlar usercontrol1 adlı nesne içinde yer alan butona bir click eventi tanımlamış oluyoruz. Şimdi burada gösteremiyorum ancak çalışma şekli; önce form açılır sonra yukarıda belirttiğimiz gibi bilgileri yazar.

Dikkat ettiyseniz usercontol1’deki  nesnye ulaşmak için önce usercontrol’ün adını sonra içindeki nesneyi çağırabiliyoruz.

Bunu yaptıktan sonra, diyelim ki kullanıcı seçim şeklini değiştirmek istediniz. Bu usercontrol’ü açıyoruz ve değişikliği yapıyoruz. Bir kere build ettiğimizde bu usercontol’ü kaç yerde kullandıysanız hepsinde aktif oluyor. Tıpkı bir class gibi…

Böylece bir c# user control örnek ile  c# user control event kullanımını da görmüş olduk.


C# User Control Nedir Nasıl Kullanılır dersimizde bu kadar arkadaşlar. Bu konunun gerçekten çok işinize yarayacağını düşünüyorum. Ben çok sık kullanıyorum ve çok faydasını görüyorum.

Arkadaşlar derslerim gerçekten işinize yarıyorsa, gerçekten faydasını görüyorsanız bir teşekkür yorumu atarak ve yazılarımı sosyal medyada paylaşarak ya da çevrenize tavsiye ederek daha çok kişiye ulaşmamızı sağlayabilirsiniz. Böylece daha çok kişiye ulaşabiliriz. Zaten siteme ulaşıp ve bana mail atan arkadaşlar elimden geldiğince yardımcı olmaya çalıştığımı biliyorlar.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersimde github projemde yerini almıştır.

Hiçbir yerde bulamayacağınız kaliteli dersler için Takipte ve Sağlıcakla kalın.

 

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (4)

  1. 3 sene önce

    Teşekkürler, işime yaradı!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.