View Full Version : سوال: غیر فعال کردن کلیک راست موس روی عنوان datagridview
momimomi
جمعه 09 بهمن 1394, 17:42 عصر
دوستان من با استفاده از context menu strip برای ردیف های دیتاگرید کلیک راست ایجاد کردم اما نمیخوام روی سربرگ ( عناوین ستونها) کلیک راست فعال باشه، چیکار کنم؟
zidanerfan
جمعه 09 بهمن 1394, 18:56 عصر
private MouseButtons e_Button = new MouseButtons();
private void dgv1_MouseDown(object sender, MouseEventArgs e)
{
e_Button = e.Button;
}
private void cms1_Opening(object sender, CancelEventArgs e)
{
if (e_Button == System.Windows.Forms.MouseButtons.Right)
e.Cancel = true;
}
منبع (http://stackoverflow.com/questions/13415777/disable-right-click-for-contextmenustrip-in-datagridview)
momimomi
جمعه 09 بهمن 1394, 21:45 عصر
private MouseButtons e_Button = new MouseButtons();
private void dgv1_MouseDown(object sender, MouseEventArgs e)
{
e_Button = e.Button;
}
private void cms1_Opening(object sender, CancelEventArgs e)
{
if (e_Button == System.Windows.Forms.MouseButtons.Right)
e.Cancel = true;
}
منبع (http://stackoverflow.com/questions/13415777/disable-right-click-for-contextmenustrip-in-datagridview)
ممنون اما این کد کلا کلیک راست رو برای دیتا گرید غیرفعال می کنه اما من میخوام روی سلولها فعال باشه و روی عناوین ستونها غیر فعال
Mahmoud.Afrad
جمعه 09 بهمن 1394, 22:31 عصر
اگر فقط ردیفها باید منو داشته باشند پس نباید منو را به دیتاگرید نسبت بدید، بلکه بعد از اضافه کردن ردیف ها (به هر صورتی) ، به هر ردیف منو رو نسبت بدید و در رویداد RowContextMenuStripNeeded هم اندیس سطر راست کلیک شده رو میتونید بدست بیارید و در جایی که نیاز دارید از این اندیس استفاده کنید.
مثال:
private int _rowClickedIndex;
private void button1_Click(object sender, EventArgs e)
{
// Fill datagrid from database
Database1Entities db = new Database1Entities();
dataGridView1.DataSource = db.tbl.ToList();
// Set ContextMenuStrip for each row
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.ContextMenuStrip = contextMenuStrip1;
}
}
private void dataGridView1_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)
{
_rowClickedIndex = e.RowIndex;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.