J'ai une classe qui crée les contrôles:Placer le curseur au début d'un vb.net MaskedTextBox d'une classe séparée
Overrides Sub createControls()
_GlobalCounter = 0
Dim lblName As New Label
lblName.Text = "Store Name"
Dim txtName As New MaskedTextBox
txtName.Mask = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
txtName.Text = name
addControl(lblName, txtName)
' txtName.SelectionStart = txtName.Text.Length()
' txtName.SelectionLength = 0
' txtName.SelectionStart = 0
' txtName.SelectionLength = 0
addEntityControls()
End Sub
J'ai une forme dynamique qui appelle ces contrôles en utilisant la méthode suivante:
Public Function returnEditorControls() As Control()
createControls()
Return _Controls
End Function
Dans la forme elle-même:
Public Sub loadEditor()
Dim controlCount As Integer = 0
createControls()
tlpMain.Controls.Clear()
tlpMain.ColumnStyles.Clear()
tlpMain.RowStyles.Clear()
tlpMain.ColumnCount = _ColumnCount
Dim intControls As Integer = myControls.Length()
Dim intTotalRows As Integer = intControls/_ColumnCount
If (intControls Mod _ColumnCount) > 0 Then
intTotalRows += 1
End If
tlpMain.RowCount = intTotalRows
For row = 0 To intTotalRows - 1
tlpMain.RowStyles.Add(New RowStyle(SizeType.Percent, 100/tlpMain.RowCount()))
For column = 0 To _ColumnCount - 1
If controlCount < intControls Then
tlpMain.Controls.Add(myControls(controlCount), column, row)
controlCount += 1
End If
Next
Next
End Sub
Mon problème est que les contrôles créés dynamiquement ne placera pas le curseur au début de MaskedTextBox. J'ai essayé les manières commentées, et elles n'ont pas fonctionné. Sinon, si la zone de texte est pleine, je veux que le curseur se trouve à la fin du texte. Je ne peux pas faire que le curseur fasse quoi que ce soit mais reste là où on clique dessus.
Check this out [lien] (http://stackoverflow.com/questions/1435376/masked-textbox-input-align-left) – 3vts
'txtName.Select (txtName.TextLength, 0)' est probablement ce que vous êtes après. – Bugs
@Bugs: Presque. Cela place le signe à la fin, mais il le veut au début. :) –