Maximální délka editovatelného textu v combu

Postup:
Založte nový projekt. Připojte modul a v něm nadeklarujte:

Option Explicit
Public Const CB_LIMITTEXT = &H141
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Na formulář přidejte combo se stylem 0 nebo 1, dvě tlačítka a textbox. Na události Click tlačítek:

Private Sub Command1_Click()
   Dim maxEditLength As Long
   'kolik znaků povolit
   maxEditLength = CLng(Text1.Text)
   'Smazání existujícího textu
   Call SetWindowText(Combo1.hwnd, "")
   'Nastavení limitu
   Call SendMessageLong(Combo1.hwnd, CB_LIMITTEXT, maxEditLength, 0&)
End Sub

Private Sub Command2_Click()
   
'Smazání existujícího textu
   
Call SetWindowText(Combo1.hwnd, "")
   'nastavení defaultní hodnoty
   Call SendMessageLong(Combo1.hwnd, CB_LIMITTEXT, 0&, 0&)
End Sub

Zpět

Autor: The Bozena