محسن شمس
سه شنبه 18 مرداد 1384, 17:17 عصر
بطوری که وقتی من دکمه ای را کلیک کردم 
در کادر کومبو باز شود
Hamedm
سه شنبه 18 مرداد 1384, 20:53 عصر
سلام دوست عزیز
این کار بوسیله توابع API براحتی قابل انجام است.
بوسیله تابع زیر میتونید ماوس و یا کیبورد رو شبیه سازی کنید:
Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
اگه نیازی بود بگو پارامترهاشو توضیح بدم.
در پناه حق موفق باشید و پرتوان
PalizeSoftware
سه شنبه 18 مرداد 1384, 21:23 عصر
با این کد این کار عملی است:
Private Const CB_SHOWDROPDOWN = &H14F
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 DropDownCombo()
  Call SendMessage(Combo1.hwnd, CB_SHOWDROPDOWN, True, 0&)
End Sub
Alirezagoodarzi
سه شنبه 18 مرداد 1384, 23:03 عصر
این کد باعث میشه اگر در text کومبو چیزی وارد کرده باشید ودر لیست موجود باشه علاوه بر باز شدن آن مورد انتخاب بشه.
 
هر جا خواستید این کار انجام بشه اون را به شکل زیر استفاده کنید.
 
 Drop cmbMoin, True 
پارامتر اول نام کومبو مورد نظره
پارامتر دوم هم برای جستجو در لیست
 
خودم ننوشتم از یک (یادم نیست) گرفتم.
 
 
Public Declare Function SendMessageAsString Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Long, _
lParam As Any) As Long
 
Public Const CB_SHOWDROPDOWN = &H14F
Public Const CB_FINDSTRING = &H14C
Public Const CB_GETDROPPEDSTATE = &H157
Public Const CB_GETDROPPEDWIDTH = &H15F
Public Const CB_SETDROPPEDWIDTH = &H160
Public Const CB_LIMITTEXT = &H141
Public Const CB_SETITEMHEIGHT = &H153
Public Const CB_GETITEMHEIGHT = &H154
 
Public Function FindString(Combo As Object, ByVal mString As String, SelectIt As Boolean) As Integer
 
	Dim lIndex As Integer
	lIndex = SendMessageAsString(Combo.hWnd, CB_FINDSTRING, -1, mString & vbNullString)
	FindString = lIndex
 
	If SelectIt = True And Combo.ListCount > 0 Then 
 
		Combo.ListIndex = lIndex
 
	End If
 
End Function
 
Public Sub SetItemHeight(Combo As Object, ByVal nItem As Integer)
 
' SendMessage Combo.hwnd, CB_SETITEMHEIGHT, nItem, nHeight
 
End Sub
 
Public Function GetEditBoxHeight(Combo As Object) As Long
 
	'ret& = SendMessage(Combo.hwnd, CB_GETITEMHEIGHT, -1, 0)
	'GetEditBoxHeight = ret&
 
End Function
 
Public Function SetEditBoxHeight(Combo As Object, ByVal nHeight As Long) As Long
 
	SetEditBoxHeight = SendMessage(Combo.hWnd, CB_SETITEMHEIGHT, -1, nHeight)
 
End Function
 
Public Sub SetMaxLen(Combo As Object, ByVal MaxChars As Long)
 
	If MaxChars > 0 Then
 
		SendMessage Combo.hWnd, CB_LIMITTEXT, MaxChars, 0
 
	Else
 
		SendMessage Combo.hWnd, CB_LIMITTEXT, 0, 0 'reset to default
 
	End If
 
End Sub
 
Public Sub SetDroppedWidth(Combo As Object, ByVal nWidth As Integer)
 
	SendMessage Combo.hWnd, CB_SETDROPPEDWIDTH, nWidth, 0
 
End Sub
 
Public Function GetDroppedWidth(Combo As Object) As Long
 
	GetDroppedWidth = SendMessage(Combo.hWnd, CB_GETDROPPEDWIDTH, 0, 0)
 
End Function
 
Public Function GetDroppedState(Combo As Object) As Boolean
 
	GetDroppedState = SendMessage(Combo.hWnd, CB_GETDROPPEDSTATE, 0, 0)
 
End Function
 
Public Sub Drop(ByRef Combo As Object, ByVal n As Boolean)
 
	Call SendMessage(Combo.hWnd, CB_SHOWDROPDOWN, n, ByVal 0&)
 
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.