C#GridView获取选中当前⾏⼀、添加右击菜单
1、打开⼯具箱,选择ContextMenuStrip如下图
2、可输⼊右键菜单名称及添加图标,如下图
3、如果想在哪个窗⼝右击显⽰就在哪个窗⼝ALT+ENTER打开属性窗⼝,将ContextMenuStrip选项的值设为刚才添加的名字,如下图
4、双击右键添加的菜单即可添加单击事件
⼆、添加回车Enter事件
1、在要添加回车事件的⽂本框ALT+ENTER打开属性窗⼝,如下:
2、将KeyDown选项的值填上触发回车事件的⽅法名,如下
3、写⼊触发事件⽅法,如:
private void txtPwd_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
this.btnSearch_Click(sender, e);//触发与点击按钮⼀样的效果
}
}
三、获取选中⾏数据
1、右击AddToBlack后触发点击事件,代码如下
private void addToBlackToolStripMenuItem_Click_1(object sender, EventArgs e)
{
int[] rows = gridView1.GetSelectedRows();
rdms_ueidinfo info = null;
if (rows.Length > 0)
{
if (list != null && list.Count > 0)
{
info = list[rows[0]];
}
else
{
info = xxData.Ueidinfos[rows[0]];
}
Contact contact = new Contact();
contact.IMSI = info.imsi;
contact.IMEI = info.imei;
DialogResult ret = DialogResult.Cancel;
Cursor.Current = Cursors.WaitCursor;
using (frmEditContact frm = new frmEditContact(contact, OwnerForm.Ribbon))
{
ret = frm.ShowDialog(OwnerForm);
}
Cursor.Current = Cursors.Default;
}
}
2、双击⾏获取选中⾏数据,代码如下
private void addToBlackListByDouble(object sender, EventArgs e)
{
int[] rows = gridView1.GetSelectedRows();
rdms_ueidinfo info = null;
if (rows.Length > 0)
{
if (list != null && list.Count > 0)
{
info = list[rows[0]];
}
else {
info = xxData.Ueidinfos[rows[0]];
}
Contact contact = new Contact();
contact.IMSI = info.imsi;
contact.IMEI = info.imei;
DialogResult ret = DialogResult.Cancel;
Cursor.Current = Cursors.WaitCursor;
using (frmEditContact frm = new frmEditContact(contact, OwnerForm.Ribbon))
{
ret = frm.ShowDialog(OwnerForm);
}
Cursor.Current = Cursors.Default;
}
}
3、代码解释:
rdms_ueidinfo info = null;
if (list != null && list.Count > 0)
{
info = list[rows[0]];
}gridview不显示
else {
info = xxData.Ueidinfos[rows[0]];
}
点击查询后,将根据查询条件查询的结果list再次显⽰到该列表,此时要获取选中⾏,就需要判断,如果list不为null表⽰当前列表是根据查询后显⽰的结果,否则就是初始列表,要做不同的判断才能选中想要的结果,之前⼀直选不中,甚是烦恼,真的是难者不会,会者不难,经过多次摸索才明⽩。