乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 21|回复: 11

[编程交流] Vb列表和组合框

[复制链接]

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-5 22:30:15 | 显示全部楼层 |阅读模式
嘿伙计们
 
在vb中如何创建一个列表,比如“1、2、3、4和5”
并将其添加到组合框???
 
另外,如何在对话框中设置图像??
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-5 22:38:54 | 显示全部楼层
使用3个组合框创建表单,名称为:
组合框1、组合框2、组合框3
以下是3种填充方框的方法
试试看
 
  1. Private Sub UserForm_Initialize()
  2. Dim listArr1 As Variant
  3. ReDim listArr2(0 To 9) As Variant
  4. Dim i
  5. Dim util As Object
  6. Set util = ThisDrawing.Utility
  7. util.CreateTypedArray listArr1, vbInteger, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  8. ' popup 1st combobox
  9. ComboBox1.List() = listArr1
  10. ' display 1st item
  11. ComboBox1.ListIndex = 0
  12. For i = 0 To 9
  13. listArr2(i) = i + 1
  14. Next
  15. ' popup 2nd combobox
  16. ComboBox2.List() = listArr2
  17. ' display 1st item
  18. ComboBox2.ListIndex = 0
  19. ' popup 3rd combobox
  20. For i = 0 To 9
  21. ComboBox3.AddItem i + 1
  22. Next
  23. ' display 1st item
  24. ComboBox3.ListIndex = 0
  25. End Sub

 
~'J'~
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-5 22:46:34 | 显示全部楼层
谢谢fixo-施展了魅力。
 
所以,你的家伙打了VB的问题,然后哈哈。
 
干杯,伙计
回复

使用道具 举报

1

主题

56

帖子

80

银币

初来乍到

Rank: 1

铜币
1
发表于 2022-7-5 22:48:27 | 显示全部楼层
 
如果你说的是VBA,以及一个*实*对话框(就像你看到的漂浮在周围的常见对话框“文件打开”模块代码),我看不出有什么办法可以解决这个问题,因为对话框是*模态*,这意味着你的VBA代码在对话框关闭之前基本上处于保留状态。
你将无法运行任何API调用来在其中放置图像。。。
 
(我还没有尝试过,通过将窗口的父hwnd设置为0,或桌面)
 
更容易创建自己的对话框,并将图像设置为帧控件。然后,要从代码中动态更改图像,请使用LoadPicture方法:
 
Private Sub UserForm_Click()
Frame1.Picture=LoadPicture(“c:\windows\Coffee Bean.bmp”)
末端接头
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-5 22:56:17 | 显示全部楼层
谢谢你,伙计。
 
嘿,伙计们,还有一个-使用组合框如何确保输入仅为数字??不允许文本??
 
维卡·维拉
回复

使用道具 举报

0

主题

252

帖子

290

银币

限制会员

铜币
-8
发表于 2022-7-5 23:00:57 | 显示全部楼层
像这样的
  1. Private Sub comboBoxName_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  2.      Select Case KeyAscii
  3.      Case Asc("0") To Asc("9")
  4.      Case Else
  5.            KeyAscii = 0
  6.      End Select
  7. End Sub
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-5 23:05:56 | 显示全部楼层
好的,谢谢-你对文本框也这么做吗??
 
因为我已经试过了,但我不能让它工作
回复

使用道具 举报

1

主题

56

帖子

80

银币

初来乍到

Rank: 1

铜币
1
发表于 2022-7-5 23:11:59 | 显示全部楼层
是的,它与上面发布的代码相同,但您可能还需要考虑小数点和负数,因此您可能需要采取额外的步骤,因为您无法循环通过“连续”ascii字符。
 
我构建了一串“允许的”键(“0123456789-。”)仅适用于数字文本框。这种方法可以用来过滤任何不同风格的键,顺便说一句。。。。
 
  1. ' ------------- snip -----------------------------
  2. Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  3.    Dim AllowableChars As String, I As Integer
  4.    AllowableChars = "0123456789+-."
  5.    For I = 1 To Len(AllowableChars)
  6.        If Asc(Mid$(AllowableChars, I, 1)) = KeyAscii Then Exit Sub
  7.    Next I
  8.    KeyAscii = 0
  9. End Sub
  10. ' ------------- snip -----------------------------
回复

使用道具 举报

28

主题

130

帖子

126

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
154
发表于 2022-7-5 23:15:37 | 显示全部楼层
谢谢,伙计-效果很好。
 
为你们的代码帮助干杯。
回复

使用道具 举报

0

主题

3

帖子

3

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:21:37 | 显示全部楼层
您好,如何再添加一个文本框(红色、白色和蓝色)?
 
谢谢
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 06:29 , Processed in 1.800771 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表