, ,

DataGridView Kullanımı C# – Özelleştirme – Veri Ekle, Güncelle, Sil

Posted by

DataGridView, C# Windows Forms uygulamalarında tablo benzeri veri görüntülemek ve düzenlemek için kullanılan bir bileşendir. Bu bileşen, veri tablolarını veya koleksiyonları görsel olarak temsil etmek için kullanılmaktadır. DataGridView kullanımı ile verileri görüntülemek, düzenlemek, sıralamak ve filtrelemek oldukça kolaydır. Bu yazıda, C# Windows Forms uygulamalarında DataGridView bileşeninin nasıl kullanılacağını inceleyeceğiz.

datagridview kullanımı

DataGridView Bileşenini Forma Ekleme

DataGridView bileşenini kullanmak için öncelikle Windows Forms uygulamanızdaki bir formun üzerine eklemeniz gerekmektedir. Bu, Toolbox’taki “DataGridView” öğesini sürükleyip bırakarak veya kod ile yapılabilmektedir.

dataGridView1 = new DataGridView();
dataGridView1.Dock = DockStyle.Fill;

// Sütunları tanımlayın
dataGridView1.Columns.Add("Id", "ID");
dataGridView1.Columns.Add("FirstName", "First Name");
dataGridView1.Columns.Add("LastName", "Last Name");
dataGridView1.Columns.Add("Class", "Class");

// DataGridView'ı forma ekleyin
Controls.Add(dataGridView1);

DataGridView Kullanımı – Veri Kaynağı Belirleme

DataGridView’a veri kaynağı olarak bir veri tablosu, liste veya başka bir koleksiyon atanabilmektedir. Bu kaynak, DataGridView üzerinde gösterilecek veriyi sağlar. Daha önce Datagridview e Sql den veri çekme yazımızda SQL üzerinden veri kaynağımızı belirlemiştik. Şimdi vereceğimiz örnekte liste üzerinden ilerleyeceğiz.

// Örnek bir veri kaynağı
List<Person> persons = new List<Person>
{
    new Person { FirstName = "John", LastName = "Doe", Age = 30 },
    new Person { FirstName = "Jane", LastName = "Smith", Age = 25 }
};

dataGridView1.DataSource = persons;

C# List Kullanımını anlattığımız yazımıza buradan ulaşabilirsiniz.

DataGridView Kullanımı – Sütunlarını Ayarlama

DataGridView sütunları, veri kaynağındaki özelliklere göre otomatik olarak oluşturulmaktadır. Ancak sütunları özelleştirmek veya elle eklemek isterseniz, DataGridView tasarım görünümünde veya kodla yapabilirsiniz.

// Elle sütun ekleme
DataGridViewColumn firstNameColumn = new DataGridViewTextBoxColumn();
firstNameColumn.HeaderText = "First Name";
firstNameColumn.DataPropertyName = "FirstName";
dataGridView1.Columns.Add(firstNameColumn);

DataGridView Kullanımı – Olayları Kullanma:

Kullanıcının hücreleri tıklama, verileri düzenleme veya sıralama gibi etkileşimlerine tepki olarak Olaylar kullanılmaktadır.

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
    {
        DataGridViewCell cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
        MessageBox.Show($"Selected Value: {cell.Value}");
    }
}

Datagridview Sütun Başlıkları ve Görünümü Özelleştirme

DataGridView sütun başlıklarını ve görünümünü özelleştirebilirsiniz. Örneğin, sütun başlıklarını farklı renklerde veya özel yazı tipleriyle ayarlayabilirsiniz.

// DataGridView başlık özelleştirme
dataGridView1.EnableHeadersVisualStyles = false;
dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.LightBlue;
dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Arial", 12, FontStyle.Bold);

Datagridview Hücre İçeriği Biçimlendirme

Hücre içeriğini biçimlendirerek, sayıları, tarihleri veya para birimlerini istediğiniz formatta görüntüleyebilirsiniz.

// Sayı hücre içeriği biçimlendirme
dataGridView1.Columns["Age"].DefaultCellStyle.Format = "N0"; // N0 formatı: Sayıyı binlik ayırıcı ile gösterir

Datagridview Hücre Stilini Değiştirme

Belirli koşullara göre hücrelerin görünümünü değiştirebilirsiniz. Örneğin, yaşa göre hücrelerin rengini değiştirebilirsiniz.

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (dataGridView1.Columns[e.ColumnIndex].Name == "Age")
    {
        int age = (int)e.Value;
        if (age < 18)
        {
            e.CellStyle.ForeColor = Color.Red;
        }
    }
}

DataGridView Seçili Satırları Özelleştirme

Kullanıcı bir satırı seçtiğinde veya üzerine geldiğinde satırın görünümünü değiştirebilirsiniz.

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightGray;
}

private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
}

DataGridView Hücre Düzenlemeyi Özelleştirme

Belirli hücrelerin düzenlenebilirliğini veya düzenleme modunu kontrol edebilirsiniz.

private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
    if (dataGridView1.Columns[e.ColumnIndex].Name == "FirstName")
    {
        e.Cancel = true; // İsim hücresinin düzenlenmesini engelle
    }
}

Bu örnekler, DataGridView kullanımı ve nasıl özelleştirebileceğinizi göstermektedir. Özelleştirme, Kullanıcılara daha iyi bir deneyim sunmak için kullanılır. Ayrıca verileri daha çekici bir şekilde görüntülemek için önemli bir adımdır.

DataGridView Kullanımı bazı önemli özellikleri aşağıda açıklanmıştır:

  • DataSource: DataGridView’ın görüntüleyeceği veri kaynağını belirler. Veritabanı tablosu, koleksiyon veya diğer veri kaynakları bu özelliğe atanır.
  • Columns: DataGridView’da görüntülenecek sütunları tanımlar. Bu özellik, otomatik olarak veri kaynağındaki sütunlara göre oluşturulabilir veya elle özelleştirilebilir.
  • Rows: DataGridView’daki satırları temsil eder. Genellikle otomatik olarak veri kaynağındaki verilere göre oluşturulur.
  • SelectionMode: Kullanıcının hücreleri veya satırları nasıl seçeceğini belirler. Single veya FullRowSelect gibi seçenekler mevcuttur.
  • AllowUserToAddRows: Kullanıcının DataGridView’a yeni satır ekleyip ekleyemeyeceğini belirler.
  • AllowUserToDeleteRows: Kullanıcının DataGridView’dan satır silebilip silemeyeceğini belirler.
  • DefaultCellStyle: Tüm hücrelerin varsayılan görünümünü ayarlar. Renk, yazı tipi, hücre içi hizalama gibi özellikler bu özellikle belirlenebilir.
  • CellBorderStyle: Hücre sınırlarının nasıl çizileceğini belirler. None, Single, Raised ve diğer seçenekler bulunur.
  • ColumnHeadersDefaultCellStyle: Sütun başlıklarının görünümünü ayarlar. Renk, yazı tipi, hücre içi hizalama gibi özellikler buradan belirlenir.
  • RowHeadersVisible: Satır başlıklarının görünüp görünmeyeceğini belirler.
  • AutoSizeColumnsMode: Sütunların otomatik boyutlandırılma modunu belirler. Fill, AllCells, None gibi seçenekler mevcuttur.
  • EditMode: Hücrelerin düzenleme modunu belirler. EditOnEnter, EditOnKeystroke, EditProgrammatically gibi seçenekler vardır.
  • CellClick: Bir hücreye tıklandığında tetiklenen olaydır. Hücrenin sütun ve satır bilgilerini içerir.
  • CellDoubleClick: Bir hücreye çift tıklandığında tetiklenen olaydır.
  • RowEnter ve RowLeave: Bir satıra giriş yapıldığında veya satırdan çıkıldığında tetiklenen olaylardır.

DataGridView, verileri görüntülemek, düzenlemek ve etkileşimli bir şekilde çalışmak için oldukça esnek ve güçlü bir bileşendir. Bu özellikler, DataGridView’ın davranışını ve görünümünü özelleştirmenizi sağlar, böylece kullanıcılarınıza daha iyi bir deneyim sunabilirsiniz.

C# DataGridView Kullanımı Örnek Proje

Konuyu anladığımızı umarak örnek bir proje ile taçlandıralım. İşte DataGridView veri ekleme, güncelleme ve silme işlemlerini içeren basit bir C# Windows Forms uygulaması örneği:

MainForm: Bir DataGridView ve 3 adet buton ekleyerek aşağıdaki kodu giriniz.

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace VeriYonetimiApp
{
    public partial class MainForm : Form
    {
        private List<Student> students = new List<Student>();

        public MainForm()
        {
            InitializeComponent();
            LoadData();
        }

        private void LoadData()
        {
            // Verileri örnek olarak yüklüyoruz
            students.Add(new Student { Id = 1, FirstName = "Ahmet", LastName = "Effective", Class = "10A" });
            students.Add(new Student { Id = 2, FirstName = "Bilal", LastName = "Yazılım", Class = "9B" });

            dataGridView1.DataSource = students;
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            // Yeni öğrenci ekleme formunu aç
            using (var form = new AddStudentForm())
            {
                if (form.ShowDialog() == DialogResult.OK)
                {
                    students.Add(form.NewStudent);
                    RefreshDataGridView();
                }
            }
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
                int selectedIndex = selectedRow.Index;
                Student selectedStudent = students[selectedIndex];

                using (var form = new UpdateStudentForm(selectedStudent))
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        students[selectedIndex] = form.UpdatedStudent;
                        RefreshDataGridView();
                    }
                }
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];
                int selectedIndex = selectedRow.Index;
                students.RemoveAt(selectedIndex);
                RefreshDataGridView();
            }
        }

        private void RefreshDataGridView()
        {
            dataGridView1.DataSource = null;
            dataGridView1.DataSource = students;
        }
    }
}
c# Proje Örneği - mainform
Main Form Görüntüsü

AddStudentForm: 3 Textbox ve 1 Buton ekleyerek aşağıdaki kodu giriniz.

using System;
using System.Windows.Forms;

namespace VeriYonetimiApp
{
    public partial class AddStudentForm : Form
    {
        public Student NewStudent { get; private set; }

        public AddStudentForm()
        {
            InitializeComponent();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtFirstName.Text) || string.IsNullOrEmpty(txtLastName.Text) || string.IsNullOrEmpty(txtClass.Text))
            {
                MessageBox.Show("Lütfen tüm alanları doldurun.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            NewStudent = new Student
            {
                FirstName = txtFirstName.Text,
                LastName = txtLastName.Text,
                Class = txtClass.Text
            };

            DialogResult = DialogResult.OK;
            Close();
        }
    }
}
c# Proje Örneği - addstudentform
AddStudentForm Görüntüsü

UpdateStudentForm: 3 Textbox ve 1 Buton ekleyerek aşağıdaki kodu giriniz.

using System;
using System.Windows.Forms;

namespace VeriYonetimiApp
{
    public partial class UpdateStudentForm : Form
    {
        public Student UpdatedStudent { get; private set; }

        public UpdateStudentForm(Student student)
        {
            InitializeComponent();
            txtFirstName.Text = student.FirstName;
            txtLastName.Text = student.LastName;
            txtClass.Text = student.Class;
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtFirstName.Text) || string.IsNullOrEmpty(txtLastName.Text) || string.IsNullOrEmpty(txtClass.Text))
            {
                MessageBox.Show("Lütfen tüm alanları doldurun.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            UpdatedStudent = new Student
            {
                FirstName = txtFirstName.Text,
                LastName = txtLastName.Text,
                Class = txtClass.Text
            };

            DialogResult = DialogResult.OK;
            Close();
        }
    }
}
c# Proje Örneği - updatestudentform
UpdateStudentForm Görüntüsü

Student Sınıfı:

public class Student
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Class { get; set; }
}

Yukarıdaki örnek, DataGridView kullanarak basit bir öğrenci veritabanı uygulamasını göstermektedir. AddStudentForm ve UpdateStudentForm formları, yeni öğrenci eklemek ve mevcut öğrenci bilgilerini güncellemek için kullanılır. Student sınıfı ise öğrenci bilgilerini temsil eder. Sonuç olarak uygulamamız aşağıda:

c# Datagridview örnek proje çıktısı
C# DataGridVeiw Örnek Proje

DataGridView bileşeni, C# Windows Forms uygulamalarında veri görüntülemek ve düzenlemek için güçlü bir araçtır. Veri kaynağı belirleme, sütunları ayarlama, olayları kullanma gibi temel adımları öğrenerek, verilerinizi kullanıcı dostu bir arayüzde etkili bir şekilde düzenleyebilirsiniz. Ayrıca datagridview kullanımı ile ilgili daha fazla bilgi için tıklayınız.

İlginizi Çekebilir

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir