如果文本框包含文本文档中的文本,如何使其触发操作?

时间:2012-09-02 16:44:17

标签: vb.net winforms

我正在尝试制作序列密钥注册程序。如何使它如果他们从我的资源中的文本文档中键入串行密钥,将会发生什么操作?我想要的是,如果有人在某个序列密钥中键入它在文本文档中,并按下注册,则会触发操作。

2 个答案:

答案 0 :(得分:2)

在WinForms中,创建事件处理程序非常容易。在表单设计器中选择序列密钥文本框。在属性窗口中,单击带闪电符号的按钮切换到事件。在这里,您可以选择多个活动。 TextChanged事件很好。每次输入或删除字符时都会触发。根据您要执行的不同Key...事件,Leave事件或ValidatedValidating事件可能会有用。如果您使用的是按钮,只需双击该按钮即可获得Click事件的处理程序。

双击事件名称旁边的空白字段。 Visual Studio会自动为您创建一个事件处理程序。

答案 1 :(得分:0)

在.NET中创建一个检查嵌入式资源中是否存在某个TextBox条目的程序非常简单。但...

请注意,.NET并不是一个很好的平台。与确保没有人可以使用免费软件(例如ILSpy

)读取您的文档/资源(包含所有有效密钥)相比,实现它将非常容易。

同时检查this question

一个简单的实现可能是这样的:

TextBox ValidationKey = new TextBox();

绑定EventHandler:

ValidationKey.KeyPress += new KeyPressEventHandler(ValidationKey_KeyPress);

EventHandler的实现:

private void ValidationKey_KeyPress(object sender, KeyPressEventArgs e)
{
    bool isKeyValid = MyResourceFile.Keys.Contains(ValidationKey.Text);
    MessageBox.Show(string.Format("Is it a valid key: {0}", isKeyValid.ToString()));
}

这是一个非常天真的实现,因为当用户只输入一个字符时,它很可能通过测试。您可能希望使用RegExp或首先检查ValidationKey.Text.Length是否等于有效密钥的长度。