Form_load выбирает строку (richtextbox), форма временно теряет фокус, возвращается обратно с выбранным всем richtextbox

У меня есть form_load, которая выбирает строку в RTB, и она отлично работает, делает указанную строку подсвеченной желтым, а все остальные строки нетронутыми. когда я нажимаю кнопку, загружаю другую форму и использую ее, а затем закрываю, исходная форма теперь полностью выделяет свое содержимое желтым цветом. Я попытался добавить rtb.DeselectAll() после выбранных строк кода, но, похоже, ничего не работает.

Я ценю любые предложения. заранее спасибо

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ReminderList.SelectionStart = ReminderList.GetFirstCharIndexFromLine(0)
ReminderList.SelectionLength = ReminderList.Lines(Globalvar.ReminderCount 1).Length
ReminderList.SelectionBackColor = Color.Yellow
Call FillOutCal()

End Sub

ОБНОВЛЕНИЕ: То, что сказал Джим, я уже знаю, проблема в том, что когда я использую другую форму и возвращаюсь к исходной форме, выделенная желтая часть изменяется, чтобы охватить все поле расширенного текста. Вот код для кнопки Сохранить, которая возвращает основную форму с ошибкой выбора:

Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveButton.Click

    FormDesktop.ReminderList.DeselectAll()

    If ItemName.Text = Nothing Then
        Dim newerror As DialogResult = MessageBox.Show("Missing some information to complete the entry, make sure everything is filled out.", _
                                                       "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Exit Sub

    ElseIf ReminderRadio.Checked = False And TaskRadio.Checked = False And IdeaRadio.Checked = False Then
        Dim newerror As DialogResult = MessageBox.Show("Missing some information to complete the entry, make sure everything is filled out.", _
                                              "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Exit Sub

    End If

    Dim TypeOfIdea As Integer

    If ReminderRadio.Checked = True Then
        FormDesktop.ReminderList.Text += vbCrLf
        TypeOfIdea = 1
        Globalvar.ReminderCount += 1
    ElseIf TaskRadio.Checked = True Then
        FormDesktop.TaskList.Text += vbCrLf
        TypeOfIdea = 2
        Globalvar.TaskCount += 1
    Else
        FormDesktop.IdeaList.Text += vbCrLf
        TypeOfIdea = 3
        Globalvar.IdeaCount += 1
    End If

    Dim NameOfItem As String = ItemName.Text

    Dim DueMonth As Integer = DateTimePick.Value.Month
    Dim DueDay As Integer = DateTimePick.Value.Day
    Dim DueYear As Integer = DateTimePick.Value.Year

    Dim SubMonth As Integer = DateTime.Now.Month
    Dim SubDay As Integer = DateTime.Now.Day
    Dim SubYear As Integer = DateTime.Now.Year

    Dim DueHour As Integer = Hour.Value
    Dim DueMinute As Integer = Minute.Value

    If TypeOfIdea = 1 Then

        If Globalvar.ReminderCount = 1 Then
            FormDesktop.ReminderList.Text += "#" + Globalvar.ReminderCount.ToString + "  " + NameOfItem + vbCrLf
        Else
            FormDesktop.ReminderList.Text += vbCrLf + "#" + Globalvar.ReminderCount.ToString + "  " + NameOfItem + vbCrLf
        End If

        If CheckBox1.Checked = True Then
            FormDesktop.ReminderList.Text += "Due: " + DueMonth.ToString + "/" + DueDay.ToString + "/" + DueYear.ToString + ", " + _
            DueHour.ToString + ":" + DueMinute.ToString + vbCrLf
        Else
            FormDesktop.ReminderList.Text += "Due: " + "N/A" + vbCrLf
        End If

        FormDesktop.ReminderList.Text += "Added: " + SubMonth.ToString + "/" + SubDay.ToString + "/" + SubYear.ToString + _
        ", " + DateTime.Now.Hour.ToString + ":" + DateTime.Now.Minute.ToString

    ElseIf TypeOfIdea = 2 Then

        If Globalvar.TaskCount = 1 Then
            FormDesktop.TaskList.Text += "#" + Globalvar.TaskCount.ToString + "  " + NameOfItem + vbCrLf
        Else
            FormDesktop.TaskList.Text += vbCrLf + "#" + Globalvar.TaskCount.ToString + "  " + NameOfItem + vbCrLf
        End If

        If CheckBox1.Checked = True Then
            FormDesktop.TaskList.Text += "Due: " + DueMonth.ToString + "/" + DueDay.ToString + "/" + DueYear.ToString + ", " + _
            DueHour.ToString + ":" + DueMinute.ToString + vbCrLf
        Else
            FormDesktop.TaskList.Text += "Due: " + "N/A"
        End If

        FormDesktop.TaskList.Text += "Added: " + SubMonth.ToString + "/" + SubDay.ToString + "/" + SubYear.ToString + ", " + _
        DateTime.Now.Hour.ToString + ":" + DateTime.Now.Minute.ToString

    Else

        If Globalvar.IdeaCount = 1 Then
            FormDesktop.IdeaList.Text += "#" + Globalvar.IdeaCount.ToString + "  " + NameOfItem + vbCrLf
        Else
            FormDesktop.IdeaList.Text += vbCrLf + "#" + Globalvar.IdeaCount.ToString + "  " + NameOfItem + vbCrLf
        End If

        FormDesktop.IdeaList.Text += "Due: " + "N/A" + vbCrLf

        FormDesktop.IdeaList.Text += "Added: " + SubMonth.ToString + "/" + SubDay.ToString + "/" + SubYear.ToString + ", " + _
        DateTime.Now.Hour.ToString + ":" + DateTime.Now.Minute.ToString

    End If

    Me.Hide()
    FormDesktop.BringToFront()

End Sub

0 ответов

Другие вопросы по тегам