کاربردها و ویژگی‌های DataGridView در دات نت (C#) | راهنمای کامل استفاده از DataGridView در Windows Forms

کاربردها و ویژگی‌های DataGridView در دات نت (C#) | راهنمای کامل استفاده از DataGridView در Windows Forms

سعید رجبی•
1405/04/07 - 09:35

کاربردها و ویژگی‌های DataGridView در دات نت

مقدمه

هنگام توسعه نرم‌افزارهای دسکتاپ با استفاده از Windows Forms در دات نت، یکی از مهم‌ترین نیازها نمایش اطلاعات به کاربران است. برای این منظور مایکروسافت کنترل قدرتمندی به نام DataGridView ارائه کرده است که امکان نمایش داده‌ها به صورت جدولی را فراهم می‌کند.

DataGridView جایگزین کنترل قدیمی DataGrid شده و امکانات بسیار بیشتری نسبت به نسخه‌های قبلی در اختیار توسعه‌دهندگان قرار می‌دهد. این کنترل می‌تواند اطلاعات را از منابع مختلفی مانند پایگاه داده SQL Server، Oracle، MySQL، فایل‌های Excel، DataTable و Collection ها دریافت و نمایش دهد.


DataGridView چیست؟

DataGridView یک کنترل گرافیکی در Windows Forms است که برای نمایش و مدیریت داده‌ها در قالب سطر و ستون استفاده می‌شود.

این کنترل به کاربران اجازه می‌دهد:

  • اطلاعات را مشاهده کنند.

  • داده‌ها را ویرایش کنند.

  • رکورد جدید اضافه کنند.

  • رکوردها را حذف کنند.

  • داده‌ها را مرتب‌سازی کنند.

  • اطلاعات را فیلتر کنند.

نمونه‌ای از نمایش اطلاعات در DataGridView:

ID

Name

Age

1

Ali

25

2

Reza

30

3

Sara

28


مهم‌ترین ویژگی‌های DataGridView

1. نمایش داده‌ها به صورت جدولی

مهم‌ترین وظیفه DataGridView نمایش اطلاعات در قالب سطرها و ستون‌ها است.

dataGridView1.DataSource = customers;

در این مثال لیستی از مشتریان مستقیماً در DataGridView نمایش داده می‌شود.


2. اتصال به پایگاه داده (Data Binding)

DataGridView از Data Binding پشتیبانی می‌کند و می‌تواند مستقیماً به منابع داده متصل شود.

منابع قابل اتصال:

  • DataTable

  • DataSet

  • List<T>

  • BindingSource

  • Entity Framework

  • LINQ Query

نمونه:

DataTable dt = new DataTable();

SqlDataAdapter adapter =
    new SqlDataAdapter("SELECT * FROM Users", connection);

adapter.Fill(dt);

dataGridView1.DataSource = dt;

3. قابلیت ویرایش داده‌ها

کاربر می‌تواند داده‌ها را مستقیماً داخل جدول ویرایش کند.

dataGridView1.ReadOnly = false;

یا برای یک ستون خاص:

dataGridView1.Columns["Name"].ReadOnly = true;

4. مرتب‌سازی (Sorting)

کاربران می‌توانند با کلیک روی عنوان ستون‌ها داده‌ها را مرتب کنند.

dataGridView1.Columns["Name"].SortMode =
    DataGridViewColumnSortMode.Automatic;

5. انتخاب سطرها

امکان انتخاب یک یا چند سطر وجود دارد.

dataGridView1.SelectionMode =
    DataGridViewSelectionMode.FullRowSelect;

6. افزودن سطر جدید

dataGridView1.AllowUserToAddRows = true;

7. حذف سطرها

dataGridView1.AllowUserToDeleteRows = true;

8. مخفی کردن ستون‌ها

گاهی برخی ستون‌ها مانند شناسه پایگاه داده نباید نمایش داده شوند.

dataGridView1.Columns["Id"].Visible = false;

9. تغییر ظاهر ستون‌ها

dataGridView1.Columns["Name"].HeaderText = "نام";

dataGridView1.Columns["Name"].Width = 200;

10. تغییر رنگ سطرها

dataGridView1.RowsDefaultCellStyle.BackColor =
    Color.LightGray;

11. انتخاب چند سطر

dataGridView1.MultiSelect = true;

12. نمایش شماره ردیف‌ها

private void dataGridView1_RowPostPaint(
    object sender,
    DataGridViewRowPostPaintEventArgs e)
{
    dataGridView1.Rows[e.RowIndex]
        .HeaderCell.Value = (e.RowIndex + 1).ToString();
}

13. پشتیبانی از رویدادها

از مهم‌ترین Event ها:

CellClick

private void dataGridView1_CellClick(
    object sender,
    DataGridViewCellEventArgs e)
{
    MessageBox.Show(
        dataGridView1.Rows[e.RowIndex]
        .Cells["Name"].Value.ToString());
}

CellValueChanged

private void dataGridView1_CellValueChanged(
    object sender,
    DataGridViewCellEventArgs e)
{
    MessageBox.Show("Value Changed");
}

RowEnter

private void dataGridView1_RowEnter(
    object sender,
    DataGridViewCellEventArgs e)
{
}

انواع ستون‌های DataGridView

DataGridView از انواع مختلف ستون‌ها پشتیبانی می‌کند.

DataGridViewTextBoxColumn

نمایش متن

DataGridViewTextBoxColumn column =
    new DataGridViewTextBoxColumn();

DataGridViewCheckBoxColumn

نمایش مقدار Boolean

DataGridViewCheckBoxColumn column =
    new DataGridViewCheckBoxColumn();

DataGridViewComboBoxColumn

نمایش لیست انتخابی

DataGridViewComboBoxColumn column =
    new DataGridViewComboBoxColumn();

DataGridViewButtonColumn

نمایش دکمه

DataGridViewButtonColumn column =
    new DataGridViewButtonColumn();

DataGridViewImageColumn

نمایش تصویر

DataGridViewImageColumn column =
    new DataGridViewImageColumn();

مزایای استفاده از DataGridView

  • یادگیری آسان

  • پیاده‌سازی سریع

  • پشتیبانی کامل از Data Binding

  • قابلیت سفارشی‌سازی بالا

  • مناسب برای نرم‌افزارهای سازمانی

  • پشتیبانی از حجم بالای داده

  • امکان توسعه و شخصی‌سازی

  • قابلیت اتصال به انواع پایگاه داده


معایب DataGridView

  • در داده‌های بسیار حجیم ممکن است کند شود.

  • ظاهر آن نسبت به کنترل‌های مدرن قدیمی‌تر است.

  • برای نمایش میلیون‌ها رکورد نیاز به Virtual Mode دارد.

  • در پروژه‌های مدرن WPF یا MAUI کمتر استفاده می‌شود.


بهینه‌سازی عملکرد DataGridView

برای نمایش حجم زیادی از اطلاعات:

فعال کردن Double Buffer

typeof(DataGridView)
    .InvokeMember(
        "DoubleBuffered",
        BindingFlags.NonPublic |
        BindingFlags.Instance |
        BindingFlags.SetProperty,
        null,
        dataGridView1,
        new object[] { true });

استفاده از Virtual Mode

dataGridView1.VirtualMode = true;

جلوگیری از AutoSize غیرضروری

dataGridView1.AutoSizeColumnsMode =
    DataGridViewAutoSizeColumnsMode.None;

موارد استفاده DataGridView در پروژه‌های واقعی

از DataGridView در پروژه‌های زیر استفاده می‌شود:

  • سیستم‌های حسابداری

  • نرم‌افزارهای فروشگاهی

  • سیستم‌های انبارداری

  • سیستم‌های مدیریت مشتریان (CRM)

  • نرم‌افزارهای مدیریت منابع انسانی

  • سیستم‌های آموزشی

  • سیستم‌های اتوماسیون اداری

  • نرم‌افزارهای مالی و بانکی


جمع‌بندی

DataGridView یکی از مهم‌ترین و پرکاربردترین کنترل‌های Windows Forms در دات نت است که امکان نمایش، ویرایش و مدیریت داده‌ها را به ساده‌ترین شکل فراهم می‌کند. این کنترل با پشتیبانی از Data Binding، رویدادهای متعدد، قابلیت سفارشی‌سازی و انواع ستون‌ها، انتخابی مناسب برای توسعه نرم‌افزارهای دسکتاپ سازمانی محسوب می‌شود. هر برنامه‌نویس C# و WinForms باید تسلط کافی بر DataGridView داشته باشد، زیرا بخش بزرگی از نرم‌افزارهای تجاری و مدیریتی بر پایه این کنترل توسعه داده شده‌اند.

آیا این مقاله مفید بود؟

نظرات

پرسش‌ها و دیدگاه‌های خود را درباره این مقاله ثبت کنید.

امتیاز شما

در حال دریافت دیدگاه‌ها...