Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 单击标签时在文本框上设置光标位置_Vb.net - Fatal编程技术网

Vb.net 单击标签时在文本框上设置光标位置

Vb.net 单击标签时在文本框上设置光标位置,vb.net,Vb.net,我有这个自定义控件,它充当带有背景图像的文本框。此控件由带有背景图像的UserControl、位于其顶部的TextBox和作为TextBox子控件的标签组成。 标签文本始终等于文本框文本。因此,当你点击标签时,它会聚焦文本框 下面是此控件的鼠标单击事件: Label_FolderNameBox.Text = TextBox_Name.Text Private Sub Label_FolderNameBox_MouseClick(ByVal sender As Object, ByVal e A

我有这个自定义控件,它充当带有背景图像的文本框。此控件由带有背景图像的UserControl、位于其顶部的TextBox和作为TextBox子控件的标签组成。 标签文本始终等于文本框文本。因此,当你点击标签时,它会聚焦文本框

下面是此控件的鼠标单击事件:

Label_FolderNameBox.Text = TextBox_Name.Text

Private Sub Label_FolderNameBox_MouseClick(ByVal sender As Object, ByVal e As EventArgs) Handles Label_FolderNameBox.MouseClick
    BackgroundImage = My.Resources.box_large_focus
    Label_FolderNameBox.Hide()
    TextBox_Name.Focus()
    TextBox_Name.Select(TextBox_Name.Text.Length, 0)
End Sub
我想要达到的目标:

我想将IBeam光标集中在
文本框\u Name
中单击标签\u FolderNameBox时的同一位置。
正如您可以看到的,这行代码
TextBox\u Name.Select(TextBox\u Name.Text.Length,0)
它总是将光标放在文本的最末尾。

我可以问一下,为什么要在文本框前面加标签吗?如果文本和光标位置始终相同,那么只使用文本框有什么区别呢?@Breeze很简单。TextBox不支持透明,而Label控件支持透明。因此,我使用Label操作MouseEnter、MouseLeave和MouseClick事件上的背景图像。单击它时,它会隐藏并显示TextBox控件的纯色背景。当文本超出控件边界时,它也会显示省略号。如果您使用的是可变宽度字体(如Arial),则获取标签中点击点的文本位置几乎是不可能的,而使用固定宽度字体(如Courier)则仍然非常困难。您必须考虑标签边距、字体大小,无论是粗体还是斜体等等。我认为这需要做很多工作。@Darius47您看过
RichTextBox
?它似乎有一个
BackgroundImage
-属性: