首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在datagridView not working onClick事件中添加按钮

在datagridView not working onClick事件中添加按钮
EN

Stack Overflow用户
提问于 2014-10-22 15:21:52
回答 2查看 1.9K关注 0票数 0

我有一个从对象获取数据的datagridView。我像这样添加列:

代码语言:javascript
复制
dataGridView1.CellClick += dataGridView1_CellClick;
DataGridViewButtonColumn colUsers = new DataGridViewButtonColumn();
colUsers.UseColumnTextForButtonValue = true;
colUsers.Text = "Users";
colUsers.Name = "";
dataGridView1.Columns.Add(colUsers);

我添加了一个onclick事件,但它不工作,我是不是遗漏了什么?

代码语言:javascript
复制
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{

    if (e.RowIndex > -1 && dataGridView1.Columns[e.ColumnIndex].Name == "Users")
    {
        name = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
        gtUserDetails.ShowDialog();
    } 
}

我得到一个错误:索引超出范围。必须为非负数且小于集合的大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-22 15:58:42

你可以使用is操作符检查:“你的单元格是其他的按钮吗?”

使用CellContentClick代替CellClick,因为如果用户点击按钮的填充,你的事件不会引发并等待点击你的按钮。

因此,您可以使用此事件

代码语言:javascript
复制
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridView1[e.ColumnIndex,e.RowIndex] is DataGridViewButtonCell)
        (dataGridView1[e.ColumnIndex, e.RowIndex] as DataGridViewButtonCell).Value = "You Clicked Me...";
}
票数 1
EN

Stack Overflow用户

发布于 2014-10-22 16:03:21

也许这是一个缺陷,但是:

代码语言:javascript
复制
colUsers.Name = ""; 

将您的列名设置为空字符串,而不是"Users“。属性文本与属性名称不同。

代码语言:javascript
复制
colUsers.Name = "Users";

编辑:常量字符串

当你想在你的代码中使用字符串值时,请开始使用常量引用。这将使您的字符串值保持在一个位置,而不是一直重复使用它们,因为您可能会给出错误的信息,从而导致错误的结果。

例如

代码语言:javascript
复制
const readonly string UserbuttonName = "Users";

private void CreatebuttonName()
{
  colUsers.Name = UserbuttonName;
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
 if (e.RowIndex > -1 && dataGridView1.Columns[e.ColumnIndex].Name == UserbuttonName)
  DoSomething();
}

编辑:完整的属性列表

Datagridviewbutton按钮列属性:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewbuttoncolumn_properties(v=vs.110).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26502230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档