我的程序中DataGridView
有一个DataGridViewButtonColumn
。
当用户点击该按钮时,它会在另一个面板上显示更多详细信息。
我无法尝试执行以下操作:
点击订购屏幕上的“发送”按钮,将订单发送到数据库,DataGridView
将自动更新,但用户仍需要点击行上相应的列按钮查看更多细节。
我想要做的是当用户点击发送时,它会自动找到与orderID对应的行,并自动点击该按钮。
这就是我所拥有的:
foreach(DataGridViewRow row in OutOrderListGridView.Rows){
string compareID = row.Cells[0].Value.ToString();
if (compareID == OrderID)
{
row.Cells[10].Selected = true; <-- here i want to performClick() on the columnbutton(cell[10]) on the specific row.
}
}
谢谢。
答案 0 :(得分:1)
我不是100%确定我完全明白你的目标,但如果我是正确的你想要做以下事情,只要CellClick事件处理你想要最终实现的目标。
不是“执行”点击(PerformClick()
),而是可以使用已知值手动引发事件...这应该对您有用,但在给定未知变量的特定应用程序中稍微未经测试。下面的代码也必须略微修改以适应。
for (int i = 0; i < OutOrderListGridView.RowCount; i++)
{
if (OutOrderListGridView[0, i].Value.ToString() == OrderID)
{
OutOrderListGridView_CellClick(OutOrderListGridView, new DataGridViewCellEventArgs(10, i));
break;
}
}
foreach
循环必须更改为for
循环才能使用foreach
循环不提供的当前索引(循环的位置)。< / p>
字符串比较不需要两个步骤,因此相应地进行了浓缩。
我还在循环中添加了break
,因为我认为一旦找到匹配,迭代剩余的行就没有意义了。