动态移动文本框中每个字符的控件

时间:2014-07-12 01:22:45

标签: vb.net textbox

基本上我正在尝试使用以下方法将CheckBox移动到右侧:

 chk_ShowPassword.Location = New Point(X, Y)

现在我尝试这样做的方法是检查文本框中的每个字符,并根据字符数量,复选框将向右移动。我正在使用:

For Each chr As Char In tb1.Text
        chk_ShowPassword.Location = New Point(++85, 95)
Next

我需要2件事的帮助,我不知道为什么,但似乎没有向右移动。这意味着每个角色向右移动85。另一件事是85是每个角色的一个很好的增量方法,是太多,太少了,

有人可以帮我解决这个问题。如果不清楚,你可以问我在哪里扩展,我会尽我所能。

1 个答案:

答案 0 :(得分:0)

我认为保存起点并从那里做动作很重要。 “Orgchk_ShowPasswordLocation”
所以你总是可以回到起点 计算字符然后使用“Orgchk_ShowPasswordLocation.X + Count * 10”
如果您在文本框中添加或删除字符,它将向前或向后移动。

Dim Orgchk_ShowPasswordLocation As Point
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Orgchk_ShowPasswordLocation = chk_ShowPassword.Location
End Sub

Dim cby As Integer
Dim cbx As Integer
Dim Count As Integer
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles tb1.TextChanged
    cby = chk_ShowPassword.Location.Y
    cbx = chk_ShowPassword.Location.X
    Count = Nothing

    For Each chr As Char In tb1.Text

        Count = Count + 1
    Next
    cbx = Orgchk_ShowPasswordLocation.X + Count * 10
    chk_ShowPassword.Location = New Point(cbx, cby)

End Sub