سلام
یه contextMenuStrip1 به فرم تون اضافه کنید ... بعد همونطور که دوست مون گفتن ، دیتاگریدویو رو انتخاب کنید و از قسمت properties گزینه CellMouseUp رو دابل کلید تا وارد محیط کد نویسی بشین !
یه رویداد مثل باتون کلیک میشه ، و این کد رو اضافه کنید :
private int rowIndex = 0;
private void dataGridView1_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.dataGridView1.Rows[e.RowIndex].Selected = true;
this.rowIndex = e.RowIndex;
this.dataGridView1.CurrentCell = this.dataGridView1.Rows[e.RowIndex].Cells[1];
this.contextMenuStrip1.Show(this.dataGridView1, e.Location);
contextMenuStrip1.Show(Cursor.Position);
}
}
خط اول یه متغیر هستش که ایندکس سطری از گریدویو که روش کلیک شده رو توی خودش ذخیره میکنه !
خط دوم دوم که همون رویداد CellMouseUp هستش
خط سوم کاملا مشخص دیگه ... میگه اگر کلید سمت راست موس فشرده شد دستورات زیر اجرا بشه
شماره سطری که روش کلیک راست شده گرفته و در متغیر بالا ریخته میشه
و در ادامه میگه حالا منوی کلیک راست رو همین موقعیت (همون جایی که موس کلیک راست شده) به نمایش دربیاد
و حالا باید کار هایی که لازم دارین توی گزینه مورد نظرتون از منوی کلیک راست انجام بدین مثلا حذف سطر از بانک !
وقتی روی گزینه مورد نظر از منو کلیک کنید وارد همچین رویدادی میشین :
private void حذفسطرToolStripMenuItem_Click(object sender, EventArgs e)
و دستورات رو توی این رویداد مینویسید :
int row1 = Convert.ToInt32(dataGridView1.CurrentRow.Cells["Id"].Value);
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True");
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Delete From TAmval WHERE Id=@i";
com.Parameters.AddWithValue("@i", row1);
con.Open();
com.ExecuteNonQuery();
if (!this.dataGridView1.Rows[this.rowIndex].IsNewRow)
{
this.dataGridView1.Rows.RemoveAt(this.rowIndex);
}
خط اول یه متغیر حاوی مقدار ستون Id از سطری که انتخاب شده رو توی خودش ذخیره میکنه !
و دستورات حذف با ado
و اون شرط آخر که میگه همون سطری که روش کلیک شده (که شمارش توی متغیر
rowIndex وجود داره) از سطر های دیتاگریدویو هم حذف بشه (که این فقط بدرد حذف میخوره)
یا علی !