关于 comboBox 控件下拉框值无法显示全部

futian_187 2017-07-21 10:18:46


求助各位大神,下拉框的值太长无法全部显示,有什么好的办法解决吗?比如选中提示或者别的。
...全文
3509 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
futian_187 2018-06-22
  • 打赏
  • 举报
回复
感谢各位,已解决。
赵4老师 2017-08-01
  • 打赏
  • 举报
回复
引用 28 楼 VBAHZ 的回复:
[quote=引用 26 楼 zhao4zhong1 的回复:] 在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
凭什么说时间和空间是无限的? [/quote] 可能
脆皮大雪糕 2017-07-31
  • 打赏
  • 举报
回复
技术人员就是喜欢讨论可以不可以实现,当然啦,只要花力气下去啥是不能实现的,关键是,一个下拉框别说超过一个屏的宽度,就算超过1/3屏幕的宽度,操作的人会看么,看着舒服么?我们实现一个东西最终是为了让人用,所谓的“用户体验”是多多少少要考虑的。当下拉框选项的文字足够长的时候,就要考虑另外一种展示或者选择的方式了。一味讨论实现没啥实际意思,即使你实现了,用户火了还是会叫你改。
赵4老师 2017-07-31
  • 打赏
  • 举报
回复
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
赵4老师 2017-07-31
  • 打赏
  • 举报
回复
“信口开河”和“头脑风暴”是不是同义词?
舉杯邀明月 2017-07-31
  • 打赏
  • 举报
回复
引用 28 楼 VBAHZ 的回复:
[quote=引用 26 楼 zhao4zhong1 的回复:] 在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
凭什么说时间和空间是无限的? [/quote] 它经常胡说八道,你可以忽略。
VBAHZ 2017-07-31
  • 打赏
  • 举报
回复 1
引用 26 楼 zhao4zhong1 的回复:
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
凭什么说时间和空间是无限的?
舉杯邀明月 2017-07-29
  • 打赏
  • 举报
回复
引用 18 楼 VBAHZ 的回复:
[quote=引用 17 楼 Chen8013 的回复:] [quote=引用 15 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残…… [/quote] 这也不一定,思路上可以参考各种地图软件,毕竟想要更仔细的看地图的话,一屏肯定是显示不了的,可以考虑鼠标边界自动移动的方式... 不过,非图像类软件,仅仅文字也要显示这么多...只能说...这已同步已退化到了猿的智商(没有脏字哦 哈哈) . [/quote] 我觉得,显示文字,没有必要象你说的“地图”那样。 我觉得多数情况下你搞一些“自动的行为”并不可取。 就比如楼主说的这个,下拉列表控件的宽度是有限的,   就算是把“下拉列表”变宽,如果真的“文字内容很长”,也照样无法显示完整。并且是“看不到的永远看不到”。 这种情况下,就可以在窗体上合适的位置,把“选定项”的文本显示到文本框中。 首先:文本框的大小可以比下拉列表控件大得多,可以直接展示更多的内容; 其次:文本框可以将文字显示成多行的,而不象下拉列表始终“单行显示”,   就算“一屏”(这不是说整个显示屏,而是指界面上文本框的区域大小)显示不完,文本框还可以有滚动条的!   用户如果想完整的看一下,可以自己去拖滚动条,想看哪就看哪。 (不看拉倒,我是给了你机会的 ) 但如果用Tooltip,有这么方便、灵活吗!(更何况,tooltip的文本长度应该还是非常有限的吧!)
VBAHZ 2017-07-29
  • 打赏
  • 举报
回复
引用 23 楼 Chen8013 的回复:
[quote=引用 21 楼 VBAHZ 的回复:] [quote=引用 19 楼 Chen8013 的回复:] [quote=引用 18 楼 VBAHZ 的回复:] [quote=引用 17 楼 Chen8013 的回复:] [quote=引用 15 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残…… [/quote] 这也不一定,思路上可以参考各种地图软件,毕竟想要更仔细的看地图的话,一屏肯定是显示不了的,可以考虑鼠标边界自动移动的方式... 不过,非图像类软件,仅仅文字也要显示这么多...只能说...这已同步已退化到了猿的智商(没有脏字哦 哈哈) . [/quote] 我觉得,显示文字,没有必要象你说的“地图”那样。 我觉得多数情况下你搞一些“自动的行为”并不可取。 就比如楼主说的这个,下拉列表控件的宽度是有限的,   就算是把“下拉列表”变宽,如果真的“文字内容很长”,也照样无法显示完整。并且是“看不到的永远看不到”。 这种情况下,就可以在窗体上合适的位置,把“选定项”的文本显示到文本框中。 首先:文本框的大小可以比下拉列表控件大得多,可以直接展示更多的内容; 其次:文本框可以将文字显示成多行的,而不象下拉列表始终“单行显示”,   就算“一屏”(这不是说整个显示屏,而是指界面上文本框的区域大小)显示不完,文本框还可以有滚动条的!   用户如果想完整的看一下,可以自己去拖滚动条,想看哪就看哪。 (不看拉倒,我是给了你机会的 ) 但如果用Tooltip,有这么方便、灵活吗!(更何况,tooltip的文本长度应该还是非常有限的吧!) [/quote] 我上面说的就是非图像类,也就是指文字类, 因人看文字很多时候需要上下文理解,所以若超屏幕的话,鼠标自动漫游需要反复来回跳转, 若真这样设计,那真是猿的智商 Tooltip只是一种显示形式,不一定非要用微软的API,完全可以自己打造嘛, 文本框,滚动条,想怎样就怎样,若再加上鼠标自动漫游功能,那会更方便的, 俺就是懒人,能少动作就尽量偷懒,哈哈 [/quote] 我表达的内容,主要的“反对”的就是12楼 赵4 那个信口开河的………… 既然“能少动作就尽量偷懒”,我说的这种做法,就是最省事的了! 你非要去“自己搞个特殊的tooltip”,这不是没事找事吗………… [/quote] 我要表达的,是在你已提出用TextBox代替ToolTip的基础上, 还可以加上鼠标漫游功能,这样,又能实现超大规模的提示信息,又能让使用的人更省事, 只有写程序的越幸苦,用的人才能更省事,不是吗? 若你是直接"反对" 赵4 那个信口开河的.....非常同意! 先点个"赞"! 当然,那就不需要用TextBox了,更不需要再加鼠标漫游功能, 这才真省事了呢, 只是说个构想而已,偶是懒得去做这么麻烦事的. 偶的程序最大用户就是偶自己,偶能体谅写程序的, 所以,就让用的人自己幸苦点吧,偶才不加什么麻烦的提示信息呢,呵呵
舉杯邀明月 2017-07-29
  • 打赏
  • 举报
回复
引用 21 楼 VBAHZ 的回复:
[quote=引用 19 楼 Chen8013 的回复:] [quote=引用 18 楼 VBAHZ 的回复:] [quote=引用 17 楼 Chen8013 的回复:] [quote=引用 15 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残…… [/quote] 这也不一定,思路上可以参考各种地图软件,毕竟想要更仔细的看地图的话,一屏肯定是显示不了的,可以考虑鼠标边界自动移动的方式... 不过,非图像类软件,仅仅文字也要显示这么多...只能说...这已同步已退化到了猿的智商(没有脏字哦 哈哈) . [/quote] 我觉得,显示文字,没有必要象你说的“地图”那样。 我觉得多数情况下你搞一些“自动的行为”并不可取。 就比如楼主说的这个,下拉列表控件的宽度是有限的,   就算是把“下拉列表”变宽,如果真的“文字内容很长”,也照样无法显示完整。并且是“看不到的永远看不到”。 这种情况下,就可以在窗体上合适的位置,把“选定项”的文本显示到文本框中。 首先:文本框的大小可以比下拉列表控件大得多,可以直接展示更多的内容; 其次:文本框可以将文字显示成多行的,而不象下拉列表始终“单行显示”,   就算“一屏”(这不是说整个显示屏,而是指界面上文本框的区域大小)显示不完,文本框还可以有滚动条的!   用户如果想完整的看一下,可以自己去拖滚动条,想看哪就看哪。 (不看拉倒,我是给了你机会的 ) 但如果用Tooltip,有这么方便、灵活吗!(更何况,tooltip的文本长度应该还是非常有限的吧!) [/quote] 我上面说的就是非图像类,也就是指文字类, 因人看文字很多时候需要上下文理解,所以若超屏幕的话,鼠标自动漫游需要反复来回跳转, 若真这样设计,那真是猿的智商 Tooltip只是一种显示形式,不一定非要用微软的API,完全可以自己打造嘛, 文本框,滚动条,想怎样就怎样,若再加上鼠标自动漫游功能,那会更方便的, 俺就是懒人,能少动作就尽量偷懒,哈哈 [/quote] 我表达的内容,主要的“反对”的就是12楼 赵4 那个信口开河的………… 既然“能少动作就尽量偷懒”,我说的这种做法,就是最省事的了! 你非要去“自己搞个特殊的tooltip”,这不是没事找事吗…………
赵4老师 2017-07-29
  • 打赏
  • 举报
回复
一石激起千层浪啊!
VBAHZ 2017-07-29
  • 打赏
  • 举报
回复
引用 19 楼 Chen8013 的回复:
[quote=引用 18 楼 VBAHZ 的回复:] [quote=引用 17 楼 Chen8013 的回复:] [quote=引用 15 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残…… [/quote] 这也不一定,思路上可以参考各种地图软件,毕竟想要更仔细的看地图的话,一屏肯定是显示不了的,可以考虑鼠标边界自动移动的方式... 不过,非图像类软件,仅仅文字也要显示这么多...只能说...这已同步已退化到了猿的智商(没有脏字哦 哈哈) . [/quote] 我觉得,显示文字,没有必要象你说的“地图”那样。 我觉得多数情况下你搞一些“自动的行为”并不可取。 就比如楼主说的这个,下拉列表控件的宽度是有限的,   就算是把“下拉列表”变宽,如果真的“文字内容很长”,也照样无法显示完整。并且是“看不到的永远看不到”。 这种情况下,就可以在窗体上合适的位置,把“选定项”的文本显示到文本框中。 首先:文本框的大小可以比下拉列表控件大得多,可以直接展示更多的内容; 其次:文本框可以将文字显示成多行的,而不象下拉列表始终“单行显示”,   就算“一屏”(这不是说整个显示屏,而是指界面上文本框的区域大小)显示不完,文本框还可以有滚动条的!   用户如果想完整的看一下,可以自己去拖滚动条,想看哪就看哪。 (不看拉倒,我是给了你机会的 ) 但如果用Tooltip,有这么方便、灵活吗!(更何况,tooltip的文本长度应该还是非常有限的吧!) [/quote] 我上面说的就是非图像类,也就是指文字类, 因人看文字很多时候需要上下文理解,所以若超屏幕的话,鼠标自动漫游需要反复来回跳转, 若真这样设计,那真是猿的智商 Tooltip只是一种显示形式,不一定非要用微软的API,完全可以自己打造嘛, 文本框,滚动条,想怎样就怎样,若再加上鼠标自动漫游功能,那会更方便的, 俺就是懒人,能少动作就尽量偷懒,哈哈
VBAHZ 2017-07-29
  • 打赏
  • 举报
回复
更强的功能: combox实现下拉出来的项目按照最长的字段长度显示 2004年的坟帖: http://bbs.csdn.net/topics/60365442
脆皮大雪糕 2017-07-28
  • 打赏
  • 举报
回复
其实很多API的用法看MSDN一头雾水,去看VC的头文件豁然开朗。
VBAHZ 2017-07-28
  • 打赏
  • 举报
回复
引用 8 楼 Chen8013 的回复:
[quote=引用 7 楼 chewinggum 的回复:] 来来来,给点干货

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_Load()
    Combo1.AddItem "这是一个很长很长的选项"
    Combo1.AddItem "这又是一个很长很长的选项"
    SendMessage Combo1.hwnd, &H160, 300, 0 '宽度设置成300,单位是像素
End Sub

效果如下:
居然这样也行 !!! 我以前找这种方案的时候,就查到一个用HOOK的,   我一直就用的HOOK消息处理,“实时”改变它的列表宽度的方法。 [/quote] 本世纪初的谷歌上很容易查到的,现在的百度上有用的资料太少了,诶... 干货再加点水,呵呵:) 160的那个是设置,15F可以返回值 Const CB_SetDropPedWidth = &H160 Const CB_GetDropPedWidth = &H15F
VBAHZ 2017-07-28
  • 打赏
  • 举报
回复
引用 17 楼 Chen8013 的回复:
[quote=引用 15 楼 zhao4zhong1 的回复:] [quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残…… [/quote] 这也不一定,思路上可以参考各种地图软件,毕竟想要更仔细的看地图的话,一屏肯定是显示不了的,可以考虑鼠标边界自动移动的方式... 不过,非图像类软件,仅仅文字也要显示这么多...只能说...这已同步已退化到了猿的智商(没有脏字哦 哈哈) .
赵4老师 2017-07-28
  • 打赏
  • 举报
回复
干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
舉杯邀明月 2017-07-28
  • 打赏
  • 举报
回复
引用 15 楼 zhao4zhong1 的回复:
[quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 这种情况,难道你用Tooltip就能显示完? 真遇到“一屏都显示不完”的内容,那用TextBox就更加合理了!毕竟TextBox可以有滚动条的。 你要是把界面设计得无厘头、不合理,“用户”只会觉得你这个程序猿弱智、脑残……
脆皮大雪糕 2017-07-28
  • 打赏
  • 举报
回复
引用 15 楼 zhao4zhong1 的回复:
[quote=引用 14 楼 Chen8013 的回复:] [quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了![/quote] 如果一个界面做到这份上,也就没打算让操作者舒服了。比如给一个下拉列表让操作员选择一篇小学课文。列表里面列课文题目是正常想法,但直接把整篇文章干进去让人选,说实在的也能达到目的
赵4老师 2017-07-28
  • 打赏
  • 举报
回复
引用 14 楼 Chen8013 的回复:
[quote=引用 12 楼 zhao4zhong1 的回复:] 干货啊! 就是长度超过屏幕宽度的话,还得用Tooltip
如果”内容超过屏幕宽度“了,如有必要的话,应该是考虑别的方法显示完整内容,而不是依赖Tooltip。 (可以用一个Label或TextBox,在窗体合适的位置, 把选择项的完整内容显示出来) [/quote] 要是完整内容一屏都显示不下的话…… 是不是我想多了!
加载更多回复(11)

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧