簡體   English   中英

C#.NET DataGridView啟用單元格僅單擊某些列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM