userControl 中文本框 TextChanged 的​​问题(C# 代码为 vb.net)

problem with textbox TextChanged inside userControl (C# code to vb.net)

我正在尝试使用 userControl 创建自定义文本框,我的问题在于设置 userControl 的默认事件以处理文本框的 textChanged 的​​部分。我目前只有一个文本框的 userControl。

在 c# 中,我有这段代码可以完美运行(UserControl3.cs 文件):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace custom_controls
{
    [DefaultEvent("_TextChanged")]
    public partial class UserControl3 : UserControl
    {
        public UserControl3()
        {
            InitializeComponent();
        }

        public event EventHandler _TextChanged;

        private void TextBox1_TextChanged(object sender, EventArgs e)
        {
            if (_TextChanged != null)
            {
                _TextChanged.Invoke(sender, e);
            }
        }
    }
}

但我无法将其正确翻译成 vb.net 我需要控制的地方。非常感谢任何帮助或建议。

这是从 C# 转换为 VB.net 的代码:

<DefaultEvent("_TextChanged")>
Public Class UserControl3

Public Event _TextChanged As EventHandler

    Private Sub textBox1_TextChanged(sender As Object, e As EventArgs) Handles textBox1.TextChanged
        If _TextChanged IsNot Nothing Then 'error here: _TextChanged 
            _TextChanged.Invoke(sender, e) 'error here: _TextChanged 
        End If
    End Sub
End Class

错误图片:

您不能在 vb 和 c# 中以相同的方式引发事件。 vb 有一个关键字 RaiseEvent 可以做到这一点

<DefaultEvent("_TextChanged")>
Public Class UserControl3

    Public Event _TextChanged As EventHandler

    Private Sub textBox1_TextChanged(sender As Object, e As EventArgs) Handles textBox1.TextChanged
        RaiseEvent _TextChanged(sender, e)
    End Sub
End Class