ساخت منوی راست کلیک برای ردیف های DataGridView در سی شارپ
در این پست قصد اموزش ایجاد منوی راست کلیک برای ردیف های DataGridView در سی شارپ رو دارم
این کار به سادگی در سی شارپ صورت میگیره و کافی کار های زیر رو انجام بدین
1- یک کنترل DataGridView به فرمتون اضافه کنید و در اونت MouseDown اون کد های زیر رو بنویسید
private int RowIndex = 0; // این مقدار در بخش متغیر های برنامه تعریف میگردد تا از همه جای برنامه قایل دسترس باشد
// زیرا از این مقدار در اونت و یا تابع دیگر هم استفاده خواهیم کرد
private void HypeRSourCeDataGridView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
DataGridView.HitTestInfo info = Showresult.HitTest(e.X, e.Y);
if (info.Type == DataGridViewHitTestType.Cell)
RowIndex = info.RowIndex;
}
}
از طرفی یک منوی ContextMenu ایجاد کرده و مقدار ContextMenu دیتا گرید خود را برابر ان قرار دهید
کار بکه کد بالا این است که در هر قسمت از گرید ویو که راست کلیک شد
موقعیت ردیف ان را و یا همانشماره ردیف را در متغیر RowIndex ذخیره میکند
حالا ما با راست کلیک در هر ردیف شماره ان ردیف را در اختیار داریم ، پس حالا میتوانید هر کاری که دوست دارید را با راست کلیک بر روی دیتا گرید انجام دهید
برای مثال :
ما میخواهیم با انتخاب گزینه اول منوی راست کلیک مقدار فیلد اول را توسط پیام نمایش دهیم
protected ContextMenuItem_Click(object sender, EventArgs e){
string FirstField = HyperRSourCeDataGridView.Rows[RowIndex].Cells[0].Value.ToString(); // بجای 0 میتوانید از نام فیلد استفاده کنید
MessageBox.Show(FirstField);
}
این کار به سادگی در سی شارپ صورت میگیره و کافی کار های زیر رو انجام بدین
1- یک کنترل DataGridView به فرمتون اضافه کنید و در اونت MouseDown اون کد های زیر رو بنویسید
private int RowIndex = 0; // این مقدار در بخش متغیر های برنامه تعریف میگردد تا از همه جای برنامه قایل دسترس باشد
// زیرا از این مقدار در اونت و یا تابع دیگر هم استفاده خواهیم کرد
private void HypeRSourCeDataGridView_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
DataGridView.HitTestInfo info = Showresult.HitTest(e.X, e.Y);
if (info.Type == DataGridViewHitTestType.Cell)
RowIndex = info.RowIndex;
}
}
از طرفی یک منوی ContextMenu ایجاد کرده و مقدار ContextMenu دیتا گرید خود را برابر ان قرار دهید
کار بکه کد بالا این است که در هر قسمت از گرید ویو که راست کلیک شد
موقعیت ردیف ان را و یا همانشماره ردیف را در متغیر RowIndex ذخیره میکند
حالا ما با راست کلیک در هر ردیف شماره ان ردیف را در اختیار داریم ، پس حالا میتوانید هر کاری که دوست دارید را با راست کلیک بر روی دیتا گرید انجام دهید
برای مثال :
ما میخواهیم با انتخاب گزینه اول منوی راست کلیک مقدار فیلد اول را توسط پیام نمایش دهیم
protected ContextMenuItem_Click(object sender, EventArgs e){
string FirstField = HyperRSourCeDataGridView.Rows[RowIndex].Cells[0].Value.ToString(); // بجای 0 میتوانید از نام فیلد استفاده کنید
MessageBox.Show(FirstField);
}