2012-12-11 37 views
1

我創建了一個用戶窗體的「從右至左」屬性爲True。 我創建了一個'TextAlign'屬性爲'3 - fmTextAlignRight'的列表框。 列表框包含兩列和行與比列表框尺寸長,所以我已經設置好的了「列寬」屬性看到所有的文本的文本。用戶窗體列表框問題

我有兩個問題:

  1. 當用戶窗體打開我看到的第二列而不是第一柱的端部。

First Problem

  • 我有個調節鈕,這些行之間進行切換。 當我有超過列表框高度的行時,當我在限制中的行之間交換時,我看到兩行具有相同的值。
  • Second Problem

    我旋轉按鈕的VBA代碼:

    Private Sub SpinButton1_SpinDown() 
        Call SwapBetweenTwoLines(False, ListBox1) 
    End Sub 
    
    Private Sub SpinButton1_SpinUp() 
        Call SwapBetweenTwoLines(True, ListBox1) 
    End Sub 
    
    Sub SwapBetweenTwoLines(up As Boolean, listbox) 
        Dim index As Integer, new_index As Integer 
        index = listbox.ListIndex 
        If (((up = True) And (index > 0)) Or _ 
         ((up = False) And (index < listbox.ListCount - 1))) Then 
         If (up = True) Then 
          new_index = index - 1 
         Else 
          new_index = index + 1 
         End If 
    
         Dim key As String, value As String 
         key = listbox.Column(0, index) 
         value = listbox.Column(1, index) 
         listbox.Column(0, index) = listbox.Column(0, new_index) 
         listbox.Column(1, index) = listbox.Column(1, new_index) 
         listbox.Column(0, new_index) = key 
         listbox.Column(1, new_index) = value 
         listbox.Selected(new_index) = True 
        End If 
    End Sub 
    

    感謝您的幫助......

    +0

    +1用於闡明你的答案與一些圖像和細節。 – bonCodigo

    +0

    如果保持默認對齊方式,或從左到右,它能夠正常工作嗎? – bonCodigo

    +0

    @Benjy爲了交換,你能否也請提供給我們你的微調按鈕的VBA代碼? –

    回答

    0

    好了,我已經成功解決的第二個問題。

    我應該值插入前寫的最後一個命令(listbox.Selected(NEW_INDEX)= TRUE),而不是之後。

    有沒有人有一個解決的第一個問題?

    謝謝...