1.Как запретить писать в TextBox (при работе программы) все символы
кроме чисел

2.Как сделать чтоб когда в TextBox заносилось например число
1,1284629084682 это число округлялось до десятых, ну тоесть чтоб
после запятой был один знак

Заранее



Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim s As String
s = "qwertyuiop"
If InStr(1, s, Chr(KeyAscii)) > 0 Then KeyAscii = 0
End Sub
Шурик писал(а):'qwertyuiop...' и т.д. - какие символы игнорировать
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Asc("0") To Asc("9"), Asc(",")
Case Else: KeyAscii = 0
End Select
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = Asc(",")) Then KeyAscii = 0
End Sub
Option Explicit
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const ES_NUMBER As Long = &H2000&
Private Const GWL_STYLE As Long = -16
Private Sub Form_Load()
Text1.Text = vbNullString
SetWindowLong Text1.hwnd, GWL_STYLE, GetWindowLong(Text1.hwnd, GWL_STYLE) Or ES_NUMBER
End Sub
Private Sub Text1_LostFocus()
Text1.Text = Format$(Text1.Text, "#.#")
End Sub
b=(int((10^n)*a))/(10^n)
Для запрета используй
KeyPress() TextBox'a
где отсеиваеш ненужные клавиши
Округление
Private Sub TextBox_LostFocus()
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (isnumeric(chr(KeyAscii)) or KeyAscii = Asc(",")) =false Then KeyAscii = 0
End Sub
Сейчас этот форум просматривают: Yandex-бот и гости: 2