台灣最大程式設計社群網站
線上人數
1387
 
會員總數:243645
討論主題:188247
歡迎您免費加入會員
討論區列表 >> VB.NET >> CheckedListBox item disabled
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
CheckedListBox item disabled
價值 : 50 QP  點閱數:214 回應數:15

樓主

HB
初級專家
1293 65
2520 264
發送站內信

假設CheckedListBox1放入4個items,請問如何設定第3個不能選取或隱藏?
語法CheckedListBox1.Items(2).Enabled = False錯誤!
謝謝!



搜尋相關Tags的文章: [ CheckedListBox ] , [ disabled ] ,
本篇文章發表於2018-12-01 17:00
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
試一下 remove

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim arrChk() As String = {"AAA", "BBB", "CCC", "DDD"}
CheckedListBox1.Items.AddRange(arrChk)
CheckedListBox1.Items.Remove("BBB")
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
CheckedListBox1.Items(2).Enabled = False
End Sub
本篇文章回覆於2018-12-01 17:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應
如果這招不好使 還有二招
本篇文章回覆於2018-12-01 17:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

HB
檢舉此回應
感謝P陳大的說明。

利用Remove是可以避免Item被選取,但整個index亂掉,後續作業無法進行。
本篇文章回覆於2018-12-01 17:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
那就用
第二招 放到 Listbox1 之前將 arrchk(2) 刪掉
第三招 在 Selected 後判斷是否選 BBB ,如果是選BBB之後,告知使用者 BBB 不能選

為什麼會亂掉 0 1 2 3 刪掉2後 就是 0 1 2 了,因為不知您後續的處理模式,無法建議

本篇文章回覆於2018-12-01 17:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

HB
檢舉此回應
再次感謝P陳大的說明。

因為實際程式中,CheckedListBox1內放入了126項目開關供選擇,但為了避免被誤選,所以將某些項目配合過濾條件進行Enabled or Disabled,若index與名稱不一致,將影響後續程式進行。
本篇文章回覆於2018-12-01 19:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

roar
檢舉此回應
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
CheckedListBox1.SetItemChecked(2, False)
End Sub
原本 CCC 勾選,執行BUtton1後變成沒有勾選。
本篇文章回覆於2018-12-01 19:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

HB
檢舉此回應
To:roar
提供的語法是切換勾選或不勾選,我要的功能是不能讓User進行『勾選或不勾選』的動作。
本篇文章回覆於2018-12-01 20:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

P陳
檢舉此回應
原則上個人
1.不會用那麼多個選項來讓使用者選 (最多20 項且會先分類 )
2.不要讓使用者選的就不會出現
3.會用 For each 直接用 內容來處理,不會用 0 1 2 3 ,用索引是搞死自己而已
尤其是複選時 取得1 2 3 後還是要轉成 內容 (aaa bbb ccc)


4.我的那三招您組合用看看,不然您要再想其他方法了 。


本篇文章回覆於2018-12-01 22:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

HB
檢舉此回應
126Items確實已先分成11個類別,且每類數量不等,最多11個而已。

會用Index的邏輯,是一次可以處理所有Items。
因為我的需求很簡單,只是記錄每個Items的開、或關而已,而且順序不變,不會動用到內容,所以不須利用內容來判別、或轉換。
本篇文章回覆於2018-12-02 09:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

city
檢舉此回應
試了一下:

在CheckedListBox1的[MouseDown]以及[SelectedIndexChanged]寫下以下程式碼
似乎就可以讓CheckedListBox1的第3個Items無法勾選

如果只寫在[SelectedIndexChanged] 多按幾下還是會被勾選
要同時寫在[MouseDown][SelectedIndexChanged]事件


本篇文章回覆於2018-12-03 19:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

city
檢舉此回應
如果要用Button來決定CheckedListBox1的第3個Items是否可以勾選

我用布林來控制:


本篇文章回覆於2018-12-03 20:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

誰是誰
檢舉此回應
釜底抽薪的解決方式是繼承 CheckedListBox 後, 改寫渲染項目的方式
本篇文章回覆於2018-12-04 01:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

HB
檢舉此回應
11樓的做法是未上網發問前的做法,想看看有無更好的防呆做法。
至於12樓的提議,因為功力有限,無法理解。
不過,仍然感謝二位大大撥空提供意見。
本篇文章回覆於2018-12-05 07:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
回應

誰是誰
檢舉此回應
To: 樓主

請收訊息
本篇文章回覆於2018-12-06 22:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

HB
檢舉此回應
感謝誰是誰大大提供資訊,待研讀後有問題再請教。
謝謝!
本篇文章回覆於2018-12-07 07:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.