Я разрабатываю решение для моей работы, где пользователь копирует текст и вставляет в форму. приведенный ниже код работает гладко для 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
Пожалуйста, предложите, что нужно сделать.