从dataGridView1获取所选行

时间:2014-10-08 18:50:45

标签: c# datagridview

我的Wondows表单应用程序上有一个dataGridView1。我已经用一个字符串列表填充了dataGridView1。一切都很好。但...

我需要能够抓住用户被选中的行,而我似乎无法做到这一点。我的代码只是给了我一个错误,写在下面。

我已经从msdn网站复制了GridViewRow。

private void editButton_Click(object sender, EventArgs e) {
        GridViewRow row =  dataGridView1.SelectedRow;

        //This is what I have been using before with a list box.
        if (itemList.SelectedIndex >= 0) {
            int newInt = itemList.SelectedIndex;
            Form form = new NewItemW(selectedFolder, this, items[newInt], WindowEnum.ItemEdit);
            form.Show();
        }
    }

我试过这个但是我收到错误:“无法找到类型或命名空间'GridViewRow'。”

我的基本问题是如何让它发挥作用?

2 个答案:

答案 0 :(得分:1)

假设您使用的是Winforms DataGridView,您应该这样做:

private void editButton_Click(object sender, EventArgs e) 
{
   if (DataGridView1.SelectedRows.Count > 0)
   {
      DataGridViewRow row =  dataGridView1.SelectedRows[0];
      if (itemList.SelectedIndex >= 0) 
      {
         int newInt = itemList.SelectedIndex;
         Form form = new NewItemW(
                         selectedFolder, this, items[newInt], WindowEnum.ItemEdit);
         form.Show();
      }
   }
}

通过从该链接复制,您已将WPF控件及其代码与Winforms混合在一起。通常人们会混淆名称DataGridViewGridViewRow,但您还复制了wong Property SelectedRow。而是使用SelectedRows集合的第一个元素。也经常检查,否则数组访问将崩溃..

答案 1 :(得分:0)

您正在使用Web控件System.Web.UI.WebControls.WebControl.GridViewRow,它必须托管在网页中。 对于Windows窗体,请使用System.Windows.Forms.DataGridViewRow控件。

http://msdn.microsoft.com/en-us/library/vstudio/system.windows.forms.datagridviewrow(v=vs.110)