我有一个设计问题,当您希望根据该单元格中的信息类型在用户单击 DataGridView 中的单元格时发生不同的操作时,最好的方法是什么。
想象以下场景。有一个包裹递送系统,其中一个屏幕显示当前安排的所有递送的列表。列可能包括:
- 交货编号
- 顾客号码
- 客户交货地点
- 主要联系人
- 交货单收据
如果用户单击单元格,则操作应该根据列的不同而有所不同。例如,如果用户单击“客户交付位置”,它可能会打开一个交付位置窗口,允许他们查看/编辑位置详细信息。如果用户点击“Delivery Order Receipt”,它可能会打开一个显示订单收据的 PDF 窗口。
执行此操作的简单方法是对 CellClick 事件执行 If 语句。伪代码:
If (column = Delivery Order Receipt)
{
LoadPDF()
}
Else if (column = Customer Delivery Location)
{
LaunchDeliveryWindow()
}
这对我来说似乎有点草率。特别是如果在某个时间点需要扩展程序以包含独特的右键单击操作或类似的东西。那么代码基本上必须被复制。有更好的方法吗?如果有一个类(可能是 ColumnActionType)来定义哪些操作应该与列相关联呢?