我有一個 ListView 并且我有它的行為正如我所希望的那樣,我正在顯示復選框,并且一次只能選擇一個專案。現在的問題是這是糟糕的用戶體驗 - 當一次只允許選擇 1 個選項時,它不應該使用復選框,它應該使用單選按鈕。所以我需要用單選按鈕替換復選框。我認為最簡單的方法是搶占復選框的繪制并將其替換為單選按鈕字形,但我不確定如何開始。此外,它需要在 ListView 上作業,而不是在 ListBox 上作業,并且需要在 WinForms 中作業,而不是在 ASP 或 WPF 中作業。我真的很感激有關您如何知道這一點的資訊 - 如果您可以鏈接到檔案/代碼,以顯示特別是 ListView 的繪圖如何作業,那將是非常棒的。我在這里找到了 .NET 4.8 的檔案 我現在正在仔細閱讀,但細節仍然會受到贊賞。
所以我的問題是,“我如何將 ListView(不是 ListBox)子類化以使用單選按鈕而不是復選框?”
uj5u.com熱心網友回復:
如果ListView.CheckBoxes屬性是true,您可以使用該ListView.StateImageList屬性作為選中/未選中專案的影像來源。
備注部分說:
StateImageList 屬性允許您指定一個 ImageList,其中包含用于表示 ListView 控制元件中專案的特定于應用程式的狀態的影像。狀態影像顯示在專案圖示的左側。您可以使用狀態影像(例如選中和未選中的復選框)來指示應用程式定義的專案狀態。狀態影像在 ListView 控制元件的所有視圖中都可見。
如果在 StateImageList 屬性中指定了 ImageList 并且 CheckBoxes 屬性設定為 true,則顯示 ImageList 中索引位置 0 和 1 處的影像而不是復選框。顯示索引位置 0 處的影像代替未選中的復選框,顯示索引位置 1 處的影像代替選中的復選框。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/372092.html
下一篇:限制惰性列中的專案
