2014-01-09 23 views
0

我想問你一些問題,我有一個包含多個項目的列表框。 列表框被設置爲MultiSimple作爲SelectionMode。所以我可以選擇多個項目。點擊列表框中的空白處丟失selecteditem

它的工作完美,但如果我點擊我的列表框中的空白空間,它會導致取消選擇我選擇的最後一個項目。或者當沒有選擇項目時,它會選擇第一個項目。

我怎樣才能防止列表框選擇/取消選擇項目時,我點擊一個空的空間? (有空的空間,我的意思是我的物品下面的空間)

回答

0

哇,我重新創建了你做了什麼,我想出的唯一選擇是試圖讓你的列表框變小以消除空白。如果方框中的列表不是固定尺寸,則可以始終根據列表大小更改其大小,並在需要滾動瀏覽它之前設置最大大小。

這不是最好的解決方案,但它似乎工作。

它看起來像這樣。

public Form1(){ 
      InitializeComponent(); 
      if (listBox1.Items.Count < 6) 
      { 

       listBox1.Height = listBox1.Items.Count*12+9; 
      } 
      else 
      { 
       listBox1.Height = 69; 
      } 

     } 
+0

轉換謝謝它的工作原理:d –

1

試試這個版本的ListBox控件:

public class ListEx : ListBox { 
    private const int WM_LBUTTONDOWN = 0x201; 
    protected override void WndProc(ref System.Windows.Forms.Message m) { 
    if (m.Msg == WM_LBUTTONDOWN) { 
     Point pt = new Point(m.LParam.ToInt32()); 
     if (this.IndexFromPoint(pt) == -1) { 
     return; 
     } 
    } 
    base.WndProc(ref m); 
    } 
} 

multisimple listbox. stop whitespace clicking from selecting deselecting last clicked item

+0

謝謝您的答覆。代碼對我來說有點太高級了,上面的解決方案很好。你的答案也應該起作用我認爲我已經看到了同樣的列表視圖解決方案。 –

相關問題