Clipboard.GetText () Функция не работает для элементов управления Textbox внутри группы - PullRequest
0 голосов
/ 21 января 2020

Я разрабатываю решение для моей работы, где пользователь копирует текст и вставляет в форму. приведенный ниже код работает гладко для textbox / richtextbox, размещенного на форме вне группового поля. где as вызывает исключение при попытке вставить текст в текстовое поле внутри группового блока.

существует три типа форм, которые имеют некоторые общие текстовые поля, которые всегда видны, а некоторые помещаются в групповые блоки, в зависимости от типа выбранной формы групповое окно отображается с соответствующим текстовым полем / richtextbox.

Приведенный ниже код идентифицирует имя элемента управления при наведении курсора мыши и при щелчке мыши вставляет содержимое из буфера обмена в текстовое поле / richtextbox

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load

    doSet(Me)

    dopaste(Me)

End Sub

Public ctr As Control

Private Sub doSet(ByVal parentCtr As Control)

    For Each ctr In parentCtr.Controls

        AddHandler ctr.MouseHover, AddressOf MouseHoover

        doSet(ctr)

    Next

End Sub

Private Sub MouseHoover(sender As Object, e As System.EventArgs)

    topaste = DirectCast(sender, Control).Name

End Sub

Private Sub dopaste(ByVal parentCtr As Control)

    For Each ctr1 In parentCtr.Controls

        AddHandler ctr1.MouseClick, AddressOf pasteit

        dopaste(ctr1)

    Next

End Sub

Private Sub pasteit(sender As Object, e As System.EventArgs)

    Try

        If topaste.Contains("TextBox") = True Then

            If Clipboard.ContainsText() And Me.Controls(topaste).Text = "" Then

                Me.Controls(topaste).Text = Clipboard.GetText()

            ElseIf Clipboard.ContainsText = False Then

                MsgBox("Either text not copied or not in compatible format")

            ElseIf Me.Controls(topaste).Text.Equals("") = False Then

                MsgBox("There is text in the text box. Do you want to replace this text?", vbYesNo)

                If MsgBoxResult.Yes Then

                    Me.Controls(topaste).Text = ""

                    Me.Controls(topaste).Text = Clipboard.GetText()
                End If
            End If
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

Пожалуйста, предложите, что нужно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...