在ListBox中设置DrawMode删除水平滚动条

Nic*_*ick 3 c# scroll listbox scrollbar winforms

我将列表框控件中的 DrawMode 设置为 OwnerDrawFixed,以便可以为某些项目着色。当项目太长而无法容纳列表框的水平空间时,不会出现水平滚动。

怎样才能让滚动条出现呢?

Dev*_*erX 5

您应该在 OwnerDrawFixed 模式下设置列表框的 Horizo​​ntalExtent 属性

    listBox1.HorizontalExtent = xx; //xx can be maximum size list box item fills
Run Code Online (Sandbox Code Playgroud)

要确定 Horizo​​ntalExtent 应设置的值,请​​对列表框中的字符串使用以下方法并获取 Width 属性:

TextRenderer.MeasureText(text, listBox1.font)
Run Code Online (Sandbox Code Playgroud)

将 Horizo​​ntalExtent 设置为 MeasureText 返回的最大宽度值