在文本框中选择文本

时间:2011-01-13 14:33:07

标签: vb.net

当我加载一些文本被赋予文本框的表单时。该文本框中的所有文本都会突出显示。我希望vb不要以这种方式加载它。 如何解决它。 谢谢 Furqna

6 个答案:

答案 0 :(得分:5)

您可以将文本框上的选项卡索引设置为其他内容,以使其不是最低索引。

您可以在form.activated事件中设置TextBox1.SelectionLength = 0.

我不喜欢这个,因为如果用户将文本设置为hilited并缩小应用程序,那么他们将失去hilite,但是相当容易。我想你可以使用一个标志来确保它只在第一次激活时才这样做。

您可以在加载中设置一个计时器事件,以便在加载事件发生后立即将其清除,但这似乎有点过分。我曾经在他们有一个标准函数的地方工作,这些函数在加载后100毫秒时发生在每个表单上,因为这样的问题。

答案 1 :(得分:1)

你可以尝试这个(它看起来像一个解决方法):

Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
    TextBox1.SelectionStart = TextBox1.Text.Length
End Sub

它取决于TextBox的TabIndex,如果它具有最低的TabIndex,它会获得焦点,因此它的文本被选中。

答案 2 :(得分:1)

' VS.net 2013. Use the "Shown" event.
' GotFocus isn't soon enough.

Private Sub Form_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    TB.SelectionLength = 0
End Sub

答案 3 :(得分:0)

类型1方法

Dim speech = CreateObject("sapi.spvoice") speech.speak(TextBox1.Text)

类型2方法

Dim oVoice As New SpeechLib.SpVoice
    Dim cpFileStream As New SpeechLib.SpFileStream
    'Set the voice type male or female and etc
    oVoice.Voice = oVoice.GetVoices.Item(0)
    'Set the voice volume
    oVoice.Volume = 100
    'Set the text that will be read by computer
    oVoice.Speak(TextBox1.Text, SpeechLib.SpeechVoiceSpeakFlags.SVSFDefault)
    oVoice = Nothing

类型3方法

Imports System.Speech.Synthesis

Public Class Form1     Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)处理MyBase.Load         Dim spk As New SpeechSynthesizer         对于每个语音As InstalledVoice in spk.GetInstalledVoices             ListBox1.Items.Add(voice.VoiceInfo.Name)         下一个         ListBox1.SelectedIndex = 0     结束子     Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click         Dim spk As New SpeechSynthesizer         spk.SelectVoice(ListBox1.SelectedItem.ToString)         spk.Speak(TextBox1.Text)     结束子 结束班

答案 4 :(得分:0)

如果为控件触发两次TextChanged或其他类似事件,也会发生这种情况。

答案 5 :(得分:0)

创建每个表单时。每个对象都被编入索引,您可以将选项卡Index设置为高于索引对象。示例:在第三个表单上放入一个文本框。

private void textBox1_TextChanged(object sender,EventArgs e)

这是项目中的第12个对象,如果您将选项卡索引放在整个项目中的索引对象之上,它将被编入索引。标签索引1000(问题解决了。)

祝你有个美好的一天。 踏板车