2014-01-25 76 views
0

當我將listview屬性設置爲enabled = false時,滾動條將不起作用。 所有我想要的是,當用戶決定添加產品時,複選框將正常工作,因爲它應該同樣適用於列表視圖上的滾動條,但是當用戶想要查看產品時,它可以在列表視圖上滾動,但它贏得了'不要讓用戶選中或取消選中複選框。請幫幫我。如何使列表視圖中的複選框只讀c#?

當我添加的產品我可以滾動,並檢查複選框爲 正常:

private void addProduct_Click(object sender, EventArgs e)   { 
      listviewProduct.Enabled = true; 
     } 

http://postimg.org/image/6y4g9568x/

當我查看了產品,我不能下滾,我無法檢查複選框太(變灰出):

private void viewProduct_Click(object sender, EventArgs e)   { 
       listviewProduct.Enabled = false; 
      } 

http://postimg.org/image/7cjz9o1jf/

+1

這是Winforms還是WPF? – Default

+0

您能否添加更詳細地描述您的問題的代碼,或者可能是程序的某個屏幕截圖顯示您遇到的問題? – Default

+2

您是否嘗試在複選框上設置「enabled = false」? – Default

回答

3

您可以使用ItemCheck事件輕鬆實現此功能。假設你有你的窗體類一個布爾變量,指示的ListView處於「只能查看」模式:

private bool ViewReadOnly; 

然後寫ItemCheck事件處理程序是這樣的:

private void listViewProduct_ItemCheck(object sender, ItemCheckEventArgs e) { 
     if (ViewReadOnly) e.NewValue = e.CurrentValue; 
    } 

只需設置變量到true當您的用戶界面切換到「僅查看」模式時,返回到虛假切換到編輯模式時。所以:

private void viewProduct_Click(object sender, EventArgs e) { 
     ViewReadOnly = true; 
     listViewProduct.BackColor = Color.Gainsboro; 
    } 

等等。不要吝嗇BackColor的改變,或者你喜歡的任何其他指示,你想給用戶一些反饋,在複選框上敲擊不會產生任何影響。

+0

非常感謝你! – user3233787

1

當您處於只讀模式時,您可以使用設置複選框爲false嗎?

listView1.CheckBoxes = false; 

這樣他們甚至不會看到它們。它避免了用戶的困惑(如果我在控件上看到一個複選框,那麼我通常希望我可以用它做點什麼)。