Visual Basic. Программирование на Visual Basic

..........................................................................................................................

[ Главная ] [ Статьи ] [ Для новичков ] [ Примеры ] [ Программы ] [ Microsoft Agent 2.0 ] [ Пособие ] [ Уроки ] [ Разное ]
..........................................................................................................................



Как сделать чтобы текстбокс показывался на экране, и не был доступен для ввода, не получал фокус, и при этом введенная информация не была "серого" цвета:
Положите этот контрол во фрейм и делайте enabled = false не текстбоксу, а фрейму.

Разные разности при работе с TextBox'ом
Необходимо добавить модуль

Option Explicit
Public Const EM_EMPTYUNDOBUFFER = &HCD
Public Const EM_CANUNDO = &HC6
Public Const EM_GETMODIFY = &HB8
Public Const EM_SETMODIFY = &HB9
Public Const EM_UNDO = &HC7
Public Const GWL_STYLE = (-16)
Public Const ES_NUMBER = &H2000
Public Const ES_UPPERCASE = &H8&
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Запрос: можно отменить последнее действие?
SendMessage(Text1.hwnd, EM_CANUNDO, 0, 0)

Запрос: изменился ли текст?
SendMessage(Text1.hwnd, EM_GETMODIFY, 0, 0)

Установить: изменился текст или нет
Dim DirtyFlag As Long
DirtyFlag = SendMessage(Text1.hWnd, EM_GETMODIFY, ByVal 0&, ByVal 0&)
If DirtyFlag = 1 Then
MsgBox "Содержимое Text Box изменилось"
Else
MsgBox "Содержимое Text Box не изменилось"
End If
End Sub

Отменить последнее действие
If SendMessage(Text1.hwnd, EM_CANUNDO, 0, 0) <> 0 Then SendMessage(Text1.hwnd, EM_UNDO, 0, 0)

Позволить вводить в ТекстБокс только определенные символы
Dim l As Long, Dim r As Long
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_NUMBER) 'только цифры
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_UPPERCASE) 'буквы в верхнем регистре и цифры
l = GetWindowLong(Text1.hwnd, GWL_STYLE)
r = SetWindowLong(Text1.hwnd, GWL_STYLE, l Or ES_LOWERCASE) 'буквы в нижнем регистре и цифры


Очистить буфер обмена
Call SendMessage(Text1.hwnd, EM_EMPTYUNDOBUFFER, 0, 0)
Call SendMessage(Text1.hwnd, EM_SETMODIFY, False, 0)

Перебор контролов на предмет изменения их содержимого
Public Sub SaveData()
Dim itextBoxCount As Integer
For itextBoxCount = 0 To Controls.Count - 1
If TypeOf Controls(itextBoxCount) Is TextBox Then
If Changed(Controls(itextBoxCount)) Then
'Place code to save data here
End If
End If
Next
End Sub

Public Function Changed(ByVal ctlTextBox As TextBox) As Boolean
Changed = SendMessage(ctlTextBox.hwnd, EM_GETMODIFY, 0, 0) <> 0
End Function

Перебор массива TextBox'ов
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then 'нажата клавиша ENTER
NewIndex = Index + 1 'вычисляется следующий по индексу TextBox
On Error Resume Next 'если достигнут последний индекс, это позволит избежать ошибки
Text1(NewIndex).SetFocus 'операция получения ввода следующего ТекстБокса
End If



..........................................................................................................................

[ Главная ] [ Диски ] [ Книги ] [ Архив рассылки ] [ Архив новостей ] [ Готовые кусочки программ ] [ Карта сайта ]
..........................................................................................................................

По страницам сайта Visaul Progs
или Изучение Visual Basic
Рассылка 'По страницам сайта Visaul Progs' >>> Подпишись на рассылку - будешь получать новые статьи , примеры и много полезной информации из первых рук!!! >>>Если у вас есть статья которой нет на сайте
пришлите ее мне-------->
Послать статью
>>>Если вы хотите задать вопрос
пишите-------->
Мне нужна помощь


Рейтинг сайтов YandeG Rambler's Top100
Реклама:

...:::Design by Mystf0rse 2005-2010 year:::...