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
我正在尝试使用 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