我在C#.NET方面经验不足,以下是我到目前为止的经验:
我创建了一个绑定到ObjectDataSource的DataGridView(通用列表)。
虽然我可以很好地利用DataGridView的CellClick事件及其相应的委托接口(DataGridViewCellEventHandler)来很好地完成我的业务逻辑,但我仍然 不满意整体逻辑。
基本上,上述方法的缺点是对于某些特定列,不需要将CellClick事件绑定到它。他们只是显示信息,而不是试图听 一些CellClick事件。
我已经尝试了很长一段时间。我试图禁用这些列可以点击但没有运气......
有什么方法可以解决这个问题吗?
我真的不想检查我的委托处理函数中的实际columnIndex是什么,然后相应地采取行动。基本上,如果首先不会触发CellClick,那么这将是一个很好的解决方案。
非常感谢提前!
答案 0 :(得分:4)
@Ian,不完全正确.....如果你真的不想做过滤,我认为这不是一件大事,说实话。您始终可以创建自己的自定义DataGridView并覆盖OnCellClick事件。为了使其更简单,您可以设置您不希望在设计时将事件提升为 ReadOnly 的列,并在提升事件之前检查该条件。
示例:
public class MyDataGridView : DataGridView
{
public MyDataGridView()
{
}
protected override void OnCellClick(DataGridViewCellEventArgs e)
{
if (!Columns[e.ColumnIndex].ReadOnly)
{
base.OnCellClick(e);
}
}
}
答案 1 :(得分:0)
我真的不想检查我的委托处理函数中的实际columnIndex是什么,然后相应地采取行动。
不幸的是,您没有选择权,因为DataGridView
不会在其DataGridViewColumn
对象上公开事件。为什么这种行为会对你造成问题?