[英]C# .NET DataGridView enable cell click only to certain columns
我對C#.NET的經驗很少,下面是到目前為止的內容:
我創建了一個DataGridView,它綁定到一個ObjectDataSource(一個通用列表)。
盡管我可以充分利用DataGridView的CellClick事件及其對應的委托接口(DataGridViewCellEventHandler)來很好地處理我的業務邏輯,但是我對整體邏輯仍然不滿意。
基本上,上述方法的缺點在於,對於某些特定列,不需要綁定CellClick事件。 它們只是顯示信息,而不是嘗試監聽某些CellClick事件。
我已經嘗試了很長時間。 我試圖禁止此類列被單擊,但是沒有運氣...
有沒有解決此問題的好方法?
我真的不想檢查我的委托處理程序函數中實際的columnIndex是什么,然后采取相應措施。 基本上,如果不首先觸發CellClick,那將是一個很好的解決方案。
提前謝謝了!
@Ian,並不完全正確.....如果您真的不想執行過濾,說實話,我認為這沒什么大不了的。 您始終可以創建自己的自定義DataGridView並覆蓋OnCellClick事件。 為了使其更簡單,您可以將在設計時不想引發事件的列設置為ReadOnly,並在引發事件之前檢查該條件。
例:
public class MyDataGridView : DataGridView
{
public MyDataGridView()
{
}
protected override void OnCellClick(DataGridViewCellEventArgs e)
{
if (!Columns[e.ColumnIndex].ReadOnly)
{
base.OnCellClick(e);
}
}
}
我真的不想檢查我的委托處理程序函數中實際的columnIndex是什么,然后采取相應措施。
不幸的是,您沒有選擇的DataGridView
,因為DataGridView
不會在其DataGridViewColumn
對象上公開事件。 為什么這種行為對您有問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.