【问题标题】:How to make a listbox scroll horizontally如何使列表框水平滚动
【发布时间】:2014-01-30 10:15:03
【问题描述】:

我有一个包含长字符串的列表框。

开头对用户来说并不是那么重要,这就是为什么我想让列表框自动以编程方式向右滚动。

您可以垂直滚动到最后一项,但我还没有找到模拟用户向右滚动的方法。

有什么想法吗?

【问题讨论】:

    标签: c# winforms listbox


    【解决方案1】:
    listbox.HorizontalScrollbar = true;
    

    【讨论】:

    • @Junaith 这是什么意思?自动是什么意思?
    • 我从问题中了解到的是,如果所选项目不完全可见,则水平滚动应移动到末尾以显示最后一部分..至少这是我的理解
    • @Junaith 这也类似于Auto 而已。如果项目完全可见,则不会显示滚动条,但不会滚动到结束。这样做会很烦人。当您垂直滚动时,水平滚动条会自动移动。没有用户会喜欢这样。
    • 我完全同意这会很烦人......但我认为这就是 OP 想要的。我可能错了……只有 OP 可以确认
    • Junaith 是正确的,我想根据列表框中当前显示的内容以编程方式将水平滚动条移动到最右边的位置。自动删除这个词,因为你是对的,那会很烦人。但是我以编程方式填充列表框,然后在显示时我希望它在显示表单时位于右侧。
    【解决方案2】:

    你应该使用listbox.HorizontalScrollbar = true;

    【讨论】:

      【解决方案3】:

      this 是您要找的吗?

      它使用 Horizo​​ntalExtent 属性。

      【讨论】:

        【解决方案4】:

        正如 Sriram Sakthivel 所说,这既没有意义也很烦人,但这并非不可能

                var point = Font.Size ;
                string Mystr = "Gimme all your lovin', all your hugs and kisses too";
                if (point * Mystr.Length > listBox1.Width)
                    listBox1.RightToLeft = RightToLeft.Yes;
                listBox1.Items.Add(Mystr);
        

        它会自动显示列表框中字符串的结尾

        并将此方法连接到单击列表框中的属性以再次获取左侧

        private void gotoleft(object sender, EventArgs e)
        {
            listbox1.RightToLeft = RightToLeft.No;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-28
          • 2021-08-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-05
          相关资源
          最近更新 更多