Я предполагаю, что это приложение, Windows Forms.
Этот similar question предлагает два возможных предложения:
Me.ActiveControl
Или, вы можете написать метод с использованием Windows API, чтобы получить ручку управления, который в настоящее время имеет фокус. Пример: article на WindowsClient.Net.
Однако каждый из этих параметров будет работать, только если TextBox все еще имеет фокус во время вызова метода.
Внутри обработчика событий кнопки вы пытаетесь выяснить, кто был последним активным TextBox, чтобы что-то с ним сделать. В этой ситуации Me.ActiveControl
не будет очень полезен, потому что элемент управления TextBox потеряет фокус, как только вы нажмете на кнопку. Пример кода ниже показывает, как вы могли бы использовать события Enter и Leave в TextBox, чтобы отслеживать, какой из последних был активен TextBox. Я предположил, что TextBox называется TextBox1.
Public Class Form1
Public activeTextBox As TextBox
Private Sub TextBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox3.Enter
activeTextBox = CType(sender, TextBox)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (activeTextBox IsNot Nothing) Then
activeTextBox.Text = activeTextBox.Text & "This is text 1"
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If (activeTextBox IsNot Nothing) Then
activeTextBox.Text = activeTextBox.Text & "This is the text 2"
End If
End Sub
End Class
Я получаю сообщение об ошибке, когда пытаюсь его реализовать –
Какая ошибка? Вы должны поместить код внутри метода или обработчика события. – Jazza
Я поставил снимок экрана выше. –