如何解决列表框控件宽度不够的问题

Posted 张英爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决列表框控件宽度不够的问题相关的知识,希望对你有一定的参考价值。

在设计界面的时候,我们经常会用到类似于列表框、组合框之类的控件,他们可以显示一系列的选项。但有一个常见的问题就是:如果列表项的文本长度超过了控件的宽度,那么就只能看到一部分内容。针对这个问题,该如何解决了?

我们分别以windows程序和web程序为例来讲解(前提是,组合框的宽度不允许放大)

下面这个图演示了如果列表项的文本宽度不大于控件宽度时的样子,这是正常的

image

下面这个图演示了如果列表项的文本宽度大于控件宽度时的样子,这时会有一部分文本是看不到的

image

那么如何解决这个问题呢?我们一般比较简单的做法是设置控件的一个特殊的属性:DropDownWidth,例如

image

这样的话,再运行窗口的时候,就看到了如下的效果

image

根据经验,我们觉得实现了如上效果,绝大多数情况下用户能感觉到更加舒适。但是同样的需求,换到web程序里面就没有那么简单了,因为web页面到了客户端浏览器的时候全部是html标记。而且也找不到那个所谓的DropdownWidth属性了。

比较好的思路是用Tooltip来帮助用户了解到当前这一行的全部内容。

第一步:把下面的脚本,保存为一个js文件,例如DropdownTooltip.js,你可以选择放在网站任意目录下,我们这里是把它放在根目录下

window.onload = showdropitem;
function showdropitem()
{
    var el = document.getElementsByTagName("select");
    for(i=0;i<el.length;i++)
    {
        for(j=0;j<el[i].options.length;j++)
        {
            el[i].options[j].title = el[i].options[j].text;
        }
    }
}

第二步:在需要该效果的页面的HEAD里面添加以下引用

<head runat="server">
    <title>无标题页</title>
    <script src="DropdownTooltip.js" type="text/javascript"></script>
</head>

然后,你就可以看到下面这样的效果

image

以上是关于如何解决列表框控件宽度不够的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使 WPF 列表框中的列对于所有项目具有相同的宽度?

C# winform 编程 自定义combobx控件,将treeview控件嵌入combobox中

如何实现控件TextView的跑马灯效果

调整列表视图大小时如何设置标题宽度等于其列表视图控件宽度?

Access 2007列表框:如何以编程方式单击?

如何将列表框的内容导出到 Access 中的表格中?