2011-01-21 62 views
6

我正在將一個VB6應用程序移植到.NET中,其中一個所需的UI元素是一個水平列表框。我似乎無法弄清楚如何在.NET中進行復制。如何在.NET中製作一個水平列表框

  1. 這可以用基本的winforms來完成嗎?

  2. 你會如何複製這個?

樣品:
alt text

VB6的代碼,將複製上圖:

Private Sub Form_Load() 
    lst_horizontal(1).FontSize = 6 
    Dim iMaxChoices As Integer 
    iMaxChoices = 10 
    For i = 1 To iMaxChoices 
     lst_horizontal(1).AddItem (" " + CStr(i)) 
    Next i 
End Sub 

Private Sub lst_horizontal_Click(Index As Integer) 
    Dim iMaxChoices As Integer 
    iMaxChoices = 10 

    For i = 0 To iMaxChoices - 1 

     If lst_horizontal(1).Selected(i) Then 
      Debug.Print ("Item " + CStr(i + 1) + " selected") 
     End If 

    Next i 

黃鼠狼的話:我可以計算出如何在Silverlight/XAML複製本,但這個應用程序不能以這種方式完成。

+1

什麼WPF? – Matt

+0

它可以在WPF中輕鬆完成,但在WinForms中,您可能必須自己編寫控件... –

回答

2

這也支持Winforms。多列屬性設置爲True,ColumnWidth屬性,比方說,15產地:

enter image description here

+0

+1,對我有用的新信息,謝謝。 – Homam

+0

我遵循了這些步驟,但並沒有爲我工作! – ElektroStudios

+0

@Hans Passant你可以知道原因? – ElektroStudios

4

我建議ListViewLargIconView財產,它可能是一個很好的和現成的解決方案爲您的情況。

alt text

祝你好運!

+1

+1不錯的解決方法 –