我的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'。”
我的基本问题是如何让它发挥作用?
答案 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混合在一起。通常人们会混淆名称DataGridView
与GridViewRow
,但您还复制了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)