| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1846 人关注过本帖
标题:Excel中combox可以设置listwidth,VB6中combo怎么设置?
只看楼主 加入收藏
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:15 
Excel中combox可以设置listwidth,VB6中combo怎么设置?
Excel中combox可以设置listwidth,VB6中combo怎么设置?谢谢大家
搜索更多相关主题的帖子: listwidth Excel combo 
2010-03-18 17:44
wei855198
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:228
专家分:944
注 册:2009-4-24
收藏
得分:5 
   ComboBox控件
  ComboBox控件与ListBox基本相同,它的优点在于占用的面积小,除了可以在选项中选择外还可以输入其它数据。它的缺点是不能多选择。

    [属性:]
        .list 可以在此属性里添加列表项
       ·Text 表示当前操作项内容。
       ·ListCount 表示当前列表框中总数据项数。
       ·ListIndex 表示当前操作项下标,第1项=0。
       ·List(i) 表示第i项表项内容。
       ·Sorted 表示是否排序。

  
  [方法:]
       · AddItem 向列表框增加一项数据。
       · ListX.AddItem(Item As String)
       · RemoveItem 删除第i项
       · ListX.RemoveItem(i As Integer)


  其它方法与事件和ListBox相同。

点击combobox后显示弹出所选选项的内容

Private Sub Combo1_Click()
Dim i
For i = 0 To i = 3 Step 1
   ' If (Combo1.Selected(i)) Then
   ' MsgBox (Combo1.List(i))
    'Else
    MsgBox (Combo1.Text)
Next i
End Sub

为combobox控件添加下拉选项

Private Sub Form_Load()
Combo1.List(0) = 111
Combo1.List(1) = 222
Combo1.List(2) = 333
Combo1.List(3) = 444
End Sub

护肤小店 http://mina2010.
靓装小店 http://liangliyizu2010.
2010-03-18 18:02
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 2楼 wei855198
谢谢,我要的不是加入item,而是加入的数据字符太长,显示不完整,怎么设置宽度!
2010-03-18 18:33
wei855198
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:228
专家分:944
注 册:2009-4-24
收藏
得分:1 
http://www.试试这个。
要在声明部分加上:
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 Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

护肤小店 http://mina2010.
靓装小店 http://liangliyizu2010.
2010-03-18 19:14
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 4楼 wei855198
我实在太菜了,可以告诉我这个涵数怎么用吗? SetComboWidth ((4))为何提示类型不匹配?

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 Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Sub SetComboWidth(cboIn As ComboBox)
    ' Resize the with of the dropdown portion of a combobox to accomodate the longest item
     
     Dim nCount As Long
     Dim nNumChars As Long
     Dim nLongestComboItem As Long
     Dim nNewDropDownWidth As Long
     Dim nOldScaleMode As Integer
     Dim nLongestComboItemIndex As Integer
     Dim oOldFont As Font
     
     ' Loop through the cboIn entries, to determine the longest item
     For nCount = 0 To cboIn.ListCount - 1
     nNumChars = SendMessage(cboIn.hwnd, CB_GETLBTEXTLEN, nCount, CLng(0))
     If nNumChars > nLongestComboItem Then
     nLongestComboItem = nNumChars
     nLongestComboItemIndex = nCount
     End If
     Next
     
     ' Save the parent's font and scale mode
     nOldScaleMode = cboIn.Parent.ScaleMode
     Set oOldFont = cboIn.Parent.Font
     
     cboIn.Parent.ScaleMode = vbPixels
     Set cboIn.Parent.Font = cboIn.Font
     
     ' Get Width of longest item in pixels
     nNewDropDownWidth = cboIn.Parent.TextWidth(cboIn.List(nLongestComboItemIndex))
     cboIn.Parent.ScaleMode = nOldScaleMode
     Set cboIn.Parent.Font = oOldFont
     
     ' Add width of vertical scrollbar
     If cboIn.ListCount > 8 Then
     nNewDropDownWidth = nNewDropDownWidth + GetSystemMetrics(SM_CYVSCROLL) + 7
     Else
     nNewDropDownWidth = nNewDropDownWidth + 7
     End If
     ' Resize the dropdown portion of the cboIn box
     SendMessage cboIn.hwnd, CB_SETDROPPEDWIDTH, nNewDropDownWidth, CLng(0)
    End Sub

[ 本帖最后由 yuk_yu 于 2010-3-19 12:03 编辑 ]
2010-03-19 09:10
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 5楼 yuk_yu
期待大家指点指点!
2010-03-19 21:59
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
CB_SETDROPPEDWIDTH
SendMessage(cboIn.hwnd, CB_SETDROPPEDWIDTH, nPixels, byval 0&)
2010-03-20 07:27
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 7楼 bczgvip
版主,如果我有个combo1(i)数组,怎样才能实现将我要显示的内容显示全?谢谢
2010-03-20 10:08
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
以下是引用yuk_yu在2010-3-20 10:08:45的发言:

版主,如果我有个combo1(i)数组,怎样才能实现将我要显示的内容显示全?谢谢
怎样才能实现将我要显示的内容显示全?
要显示什么?
2010-03-20 10:44
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 9楼 bczgvip
conbo.rar (1.87 KB)
见附件
2010-03-22 09:14
快速回复:Excel中combox可以设置listwidth,VB6中combo怎么设置?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032442 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved