免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VB問(wèn)題全功略(14)listbox 和combox
VB問(wèn)題全功略(14)

66、ListBox 選項(xiàng)資料太長(zhǎng),如何設(shè)定 ListBox 的水平卷動(dòng)軸?

67、ListBox 選項(xiàng)資料太長(zhǎng),如何使用 ToolTip 來(lái)顯示內(nèi)容?

68、如何加長(zhǎng) ComboBox 的下拉選單?

69、如何加寬 ComboBox 的下拉選單?

70、如何用程序控制滑鼠游標(biāo) (Mouse Cursor) 到指定位置?

66、ListBox 選項(xiàng)資料太長(zhǎng),如何設(shè)定 ListBox 的水平卷動(dòng)軸?

VB 的 ListBox 并沒(méi)有水平卷動(dòng)軸的功能,如果遇到某一個(gè)資料項(xiàng)很長(zhǎng)時(shí), 使用者就無(wú)法看到這一個(gè)資料項(xiàng)的所有內(nèi)容,要如何設(shè)定水平卷動(dòng)軸給 ListBox?

可利用 SendMessage 傳送 LB_SETHORIZONTALEXTENT 訊息給 ListBox,此一訊息的作用就是要求ListBox 設(shè)定水平卷動(dòng)軸, 細(xì)節(jié)如下:

1. API 的聲明:

注釋:16位

Const WM_USER = &H400

Const LB_SETHORIZONTALEXTENT = (WM_USER + 21)

Private Declare Function SendMessage Lib "User" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long

注釋:32位

Const LB_SETHORIZONTALEXTENT = &H194

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

2. 程序范例:

注釋: List1 為 ListBox 的名稱

Call SendMessage(List1.hwnd, LB_SETHORIZONTALEXTENT, 水平卷動(dòng)軸的寬度, ByVal 0&)

特別注意:

以上的水平卷動(dòng)軸寬度的單位是 pixel(像素),或許您會(huì)認(rèn)為這個(gè)寬度就是 ListBox 的寬度,但是結(jié)果卻不是這樣的,它真正指的是這個(gè)卷動(dòng)軸要卷動(dòng)的文字的寬度,所以您要預(yù)留可能放到 ListBox 內(nèi)的資料最長(zhǎng)的長(zhǎng)度,若留得太短,可能出現(xiàn)以下二種情形:

1、 水平卷動(dòng)軸的寬度設(shè)的比 ListBox 本身的寬度還短,VB會(huì)認(rèn)為不需要卷動(dòng)軸,而不產(chǎn)生卷動(dòng)軸!

2、 水平卷動(dòng)軸的寬度設(shè)的比 ListBox 內(nèi)的資料寬度還短,則只能卷動(dòng)一半,還是看不到完整內(nèi)容!

67、ListBox 選項(xiàng)資料太長(zhǎng),如何使用 ToolTip 來(lái)顯示內(nèi)容?

ListBox 選項(xiàng)資料太長(zhǎng),雖然可以加上水平卷動(dòng)軸,但卷來(lái)卷去還是有點(diǎn)麻煩,如果可以出現(xiàn) Popup ToolTip 就更正點(diǎn)了!當(dāng)然,您若想要二種功能一起使用,也是可以的。

關(guān)于這個(gè)主題,我看過(guò)很多范例都是使用 API 來(lái)做,但是以下這個(gè)方法既簡(jiǎn)單,又不必使用任何 API,帥吧!

Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim YPos As Integer, iOldFontSize As Integer

iOldFontSize = Me.Font.Size

Me.Font.Size = List1.Font.Size

YPos = Y Me.TextHeight("Xyz") + List1.TopIndex

Me.Font.Size = iOldFontSize

If YPos < List1.ListCount Then

List1.ToolTipText = List1.List(YPos)

Else

List1.ToolTipText = ""

End If

End Sub

68、如何加長(zhǎng) ComboBox 的下拉選單?

Combo 預(yù)設(shè)的下拉長(zhǎng)度只有 5,6 個(gè)選項(xiàng),當(dāng)選項(xiàng)很多時(shí),要卷老半天才能找到資料,很不方便!要加長(zhǎng) ComboBox 的下拉選單,方法如下:

在聲明區(qū)中放入以下聲明及 Subroutine

Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Public Sub SetComboHeight(oComboBox As ComboBox, lNewHeight As Long)

Dim oldscalemode As Integer

注釋: This procedure does not work with frames: you

注釋: cannot set the ScaleMode to vbPixels, because

注釋: the frame does not have a ScaleMode Property.

注釋: To get round this, you could set the parent control

注釋: to be the form while you run this procedure.

If TypeOf oComboBox.Parent Is Frame Then Exit Sub

注釋: Change the ScaleMode on the parent to Pixels.

oldscalemode = oComboBox.Parent.ScaleMode

oComboBox.Parent.ScaleMode = vbPixels

注釋: Resize the combo box window.

MoveWindow oComboBox.hwnd, oComboBox.Left, oComboBox.Top, oComboBox.Width, lNewHeight, 1

注釋: Replace the old ScaleMode

oComboBox.Parent.ScaleMode = oldscalemode

End Sub

在任何時(shí)候 (不一定是 Form_Load 或 Combo_DropDown),想要加長(zhǎng) ComboBox 的下拉選單時(shí),只要加入以下程序即可:

Call SetComboHeight(Combo1, 270) 注釋:設(shè)定的單位是 Pixels

69、如何加寬 ComboBox 的下拉選單?

和 ListBox 一樣, ComboBox 也會(huì)有寬度不夠的情形, Combo 下拉之后資料看不完整,當(dāng) Form 上的物件不多時(shí),還可以拉長(zhǎng)一點(diǎn),但有時(shí)候也沒(méi)辦法!這時(shí)候,還是得靠 API 了!

在聲明區(qū)中放入以下聲明及 Subroutine

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

Const CB_SETDROPPEDWIDTH = &H160

Public Sub SetComboWidth(oComboBox As ComboBox, lWidth As Long)

注釋: lWidth 是寬度,單位是 pixels

SendMessage oComboBox.hwnd, CB_SETDROPPEDWIDTH, lWidth, 0

End Sub

在任何時(shí)候 (不一定是 Form_Load 或 Combo_DropDown),想要加寬 ComboBox 的下拉選單時(shí),只要加入以下程序即可 (若設(shè)定的寬度小于 Combo 原來(lái)的寬度則無(wú)效):

Call SetComboWidth(Combo1, 270) 注釋:設(shè)定的單位是 Pixels

70、如何用程序控制滑鼠游標(biāo) (Mouse Cursor) 到指定位置?

以下這個(gè)例子,當(dāng) User 在 Text1 中按下 注釋:Enter注釋: 鍵后,滑鼠游標(biāo)會(huì)自動(dòng)移到 Command2 按鈕上方

請(qǐng)?jiān)诼暶鲄^(qū)中加入以下聲明:

注釋:16 位版本: ( Sub 無(wú)傳回值 )

Declare Sub SetCursorPos Lib "User" (ByVal X As Integer, ByVal Y As Integer)

注釋:32 位版本: ( Function 有傳回值,Integer 改成 Long )

Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

注釋:在 Form1 中加入以下程序碼:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

x% = (Form1.Left + Command2.Left + Command2.Width / 2 + 60) / Screen.TwipsPerPixelX

y% = (Form1.Top + Command2.Top + Command2.Height / 2 + 360) / Screen.TwipsPerPixelY

SetCursorPos x%, y%

End If

End

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ListBox和ComboBox
【新提醒】VBA之Listbox控件基礎(chǔ)教程
VB編碼規(guī)范
VB實(shí)用代碼,收藏!!
c-vb Type
vb.net入門——ComboBox 控件的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服