1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
1 |
|
06.04.2011, 19:52. Показов 16018. Ответов 5
Подскажите как программировать нахождение курсора в тексбоксе TextBox
0 |
Заблокирован |
||||||||||||
06.04.2011, 20:27 |
2 |
|||||||||||
Положение курсора в TextBox:
Поставить курсор перед, после последнего знака текстбокса??
Выделение второго знака в TextBox:
1 |
1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
|
06.04.2011, 20:58 [ТС] |
3 |
а как будет если курсор в первом положении а пользователь жмёт BackSpace или стрелку влево, чтобы звук был — Beep
0 |
Заблокирован |
||||
06.04.2011, 21:18 |
4 |
|||
0 |
Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
07.04.2011, 09:02 [ТС] |
5 |
|||
Понял, а как это же самое во всех тексбоксах на форме? Добавлено через 30 секунд Добавлено через 11 часов 18 минут
Как узнать если есть номер клавиши 8, каково имя клавиши??
0 |
mc-black 2784 / 716 / 106 Регистрация: 04.02.2011 Сообщений: 1,443 |
||||
07.04.2011, 09:26 |
6 |
|||
В теле макроса набери wdKey и нажми Ctrl+J — выпадет список с тем, что тебя интересует. Добавлено через 5 минут
После того, как нажмешь кноку равно и пробел — вывалится весь список перечисления. =)
2 |
The title mostly explains what I need. I have a textbox that I continuously examine for data validity using the _keypress
procedure. If the user enters (
then I auto-fill it for them by typing the closing parenthesis )
. The result is ()
and the cursor is at the end of the textbox.
My question is, how can I push the cursor back one step to put it between the two parenthesis? Thanks,
Edit: Test scenario:
Private Sub txtInput_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc("(") Then
txtInput.value = txtInput.value & "()"
KeyAscii = 0
End If
End Sub
Hope this makes it more clear,
asked Feb 8, 2015 at 21:19
Use the SelStart
property of the TextBox
object:
Me.TextBox1.Value = "()"
Me.TextBox1.SelStart = 1
Note: SelStart=1
means the cursor will be after the first element, i.e. «(
«. You should hence play with your string to understand what your desired value of SelStart
property should be.
answered Feb 8, 2015 at 22:01
Matteo NNZMatteo NNZ
11.8k11 gold badges53 silver badges88 bronze badges
4
Use the SelStart property with Len function
Me.txtInput.SelStart = Len(Me.txtInput.Value)-1
Using this method now you can be sure that it will always set the typing cursor between your parenthesis
answered Sep 4, 2022 at 12:56
ZVI
MrExcel MVP
-
#2
Hi,
Use this to restore the last edit position in textboxes for Enter / Tab / Shift-Tab navigation:
Rich (BB code):
Private Sub UserForm_Initialize()
Dim x As Control
For Each x In Me.Controls
If TypeOf x Is MSForms.TextBox Then
x.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
End If
Next
End Sub
TextBox1.SelStart returns/sets the zero-based start position of selection in TextBox1
Regards
Last edited: Jul 20, 2013
-
#8
Thank you for the post as it proved fruitful for my query.
Группа: Модераторы Ранг: Старожил Сообщений: 2198
Замечаний: |
AndreyK, методом Activate. Но сначала, нужно выйти из режима редактирования ячейки:
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
With TextBox1
.Visible = True
.Value = Cells(ActiveCell.Row, 1).Value
.Top = ActiveCell.Top
.Height = ActiveCell.Height + 3
.Left = ActiveCell.Left
.Width = ActiveCell.Width ‘ + 55
.Activate
End With
End Sub
[/vba]
ЯД: 410013299366744 WM: R193491431804
In below program, I receive this error: Run-time error ‘-2147467259(80004005)’: Unspecified error. by highlight this code: txtStartDate.SetFocus
in this line: If txtStartDate.Text = "" Then txtStartDate.SetFocus
Private Sub txtTimeUnit_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsError(Application.Match(txtTimeUnit.Text, Range("intTable[Units]"), 0)) Then
lblStatusBar = "Please correct value."
Cancel = True
Exit Sub
End If
lblStatusBar = vbNullString
Range("CToDate").Value = txtTimeUnit.Text
If txtStartDate.Text = "" Then txtStartDate.SetFocus
If txtEndDate.Text = "" Then txtEndDate.SetFocus
End Sub
Can anyone help me about this error and passing text box focus (Cursor) to another text box?
Shai Rado
32.9k6 gold badges26 silver badges51 bronze badges
asked Jul 2, 2017 at 12:51
1
Replace
If txtStartDate.Text = "" Then txtStartDate.SetFocus
by
If txtStartDate.Text = "" Then
txtStartDate.SetFocus
Exit Sub
End If
answered Jul 2, 2017 at 13:11
Siddharth RoutSiddharth Rout
146k17 gold badges206 silver badges250 bronze badges
8