首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UserForm ListBox问题

UserForm ListBox问题
EN

Stack Overflow用户
提问于 2012-12-11 22:15:48
回答 1查看 1.5K关注 0票数 1

我已经创建了一个“RightToLeft”属性为True的userform。我已经创建了一个列表框,它的“TextAlign”属性是‘3-fmTextAlignRight’。列表框包含两列和两行,其文本长度大于列表框大小,因此我设置了“ColumnWidths”属性以查看所有文本。

我有两个问题:

  1. 当userform打开时,我看到的是第二列的末尾,而不是第一列。

  1. 我有一个SpinButton,它在行之间交换。当我有超过列表框高度的行时,当我在限制中的行之间交换时,我会看到两行具有相同的值。

我的旋转按钮的VBA代码:

代码语言:javascript
复制
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

谢谢你的帮助..。

EN

回答 1

Stack Overflow用户

发布于 2012-12-18 22:38:36

我成功地解决了第二个问题。

我应该在插入值之前编写最后一个命令(listbox.Selected(new_index) = True),而不是后面。

有人能解决第一个问题吗?

谢谢..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13829415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档