در این جلسه قصد آموزش کنترل DataGrideView در سی شارپ را داریم.کاربرد اصلی این ابزار این است که به یک بانک اطلاعاتی وصل شود و اطلاعات رکوردها را به صورت جدولی نمایش می دهد، چون فعلا با هیچ نوع پایگاه داده ای آشنا نیستیم با یک سری از رویدادها و نحوه کار کردن این ابزار آشنا می شویم. (تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم لطفا اگر مبتدی هستید با این دو آموزش شروع کنید)
دیتا گرید ویو را از پنجره Toolbox انتخاب کرده و روی فرم می گذاریم:
می خواهیم چند تا ستون به جدولمون اضافه کنیم برای این کار روی فلش کنار دیتاگرید ویو کلیک کرده و AddColumn را انتخاب می کنیم
در پنجره ای که باز می شود:
سه تا ستون اضافه می کنیم بنام های ردیف و نام و نام خانوادگی:
خاصیت RightToLeft پنجره فرم را برابر Yes قرار می دهیم تا تمام ستون ها از راست به چپ شروع شوند.
نکته: ویژوال سی شارپ چون از مبحث ارث بری استفاده می کند پس هر شیء ای که روی فرم قرار دهیم خصوصیات فرم را به ارث میبرد:
اگر خواستیم پهنای ستون ردیف را کمتر کنیم از فلش کنار کنترل دیتا گرید ویو EditColumns را انتخاب کرده:
خصوصیت Width را تغییر می دهیم که من در اینجا 60 در نظر گرفتم:
برنامه ای بنویسیم که مقادیری که کاربر وارد کرد را به فیلدهای جدولمان اضافه شود، فرممان را طبق فرم زیر طراحی می کنیم:
نحوه کد نویسی:
اگر بخواهیم در حین اجرای برنامه وقتی رکوردی به جدولمان اضافه شد یک شماره ردیف به صورت خودکار برایش در نظر بگیرد دیتا گرید ویو یک رویدادی دارد بنام CellFormatting که با نوشتن کد زیر این کار را انجام می دهد:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormatting EventArgs e)
{
dataGridView1.Rows[e.RowIndex].Cells[0].Value = e.RowIndex + 1;
}
درج اطلاعات:
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Add(“”,textBox1.Text, textBox2.Text);
به رکورد جدولم اضافه کن (مقدار ستون ردیف , مقدار ستون نام, مقدار ستون نام خانوادگی)//
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
//بعد از اضافه شدن اطلاعات تکست ها را خالی کند
textBox1.Focus() ;
//نشانگر موس را بده به تکست اولی
}
حذف اطلاعات:
private void button2_Click(object sender, EventArgs e(
{
if (dataGridView1.RowCount != 1)اگر رکورد فعالی وجود داشت //
dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
//رکورد فعال را حذف کن یعنی آن رکوردی که کاربر انتخاب کرده است
}
اگر برای حذف رکوردی خواسته باشیم از Delete صفحه کلید استفاده کنیم:
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete && dataGridView1.RowCount != 1)
dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
}
انتقال اطلاعات به TextBox ها:
اگر بخواهیم اطلاعات رکوردها را انتقال دهیم به textbox ها، کنترل دیتا گرید ویو یک رویدادی دارد بنام CellClick که این کار را برای ما امکان پذیر می کند:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
textBox1.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
textBox2.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
}
برنامه را اجرا می کنیم:
آموزش کنترل DataGrideView در سی شارپ به پایان رسید، امیدواریم از این آموزش جالب و کاربردی لذت برده باشید.