C#GridView获取选中当前行

本文介绍了如何在WinForms应用程序中实现右键菜单、回车事件处理及从DataGridView获取选中行数据的方法。通过示例代码展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、添加右击菜单

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]];
           }
           else {
                info = xxData.Ueidinfos[rows[0]];
           }

点击查询后,将根据查询条件查询的结果list再次显示到该列表,此时要获取选中行,就需要判断,如果list不为null表示当前列表是根据查询后显示的结果,否则就是初始列表,要做不同的判断才能选中想要的结果,之前一直选不中,甚是烦恼,真的是难者不会,会者不难,经过多次摸索才明白。

更多博客内容详见我的博客 Wang's Blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坏菠萝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值