TextBox没有KeyDown或KeyPress事件

时间:2019-11-25 01:34:55

标签: vb.net events webforms textbox

我有一个Visual Basic Web应用程序,并且在表单上放置了一个文本框。当我查看可用于该文本框的动作时,唯一可用的动作是DataBinding,Disposed,Init,Load,PreRender,TextChanged和Unload。为什么KeyDown不可用?是否因为这是Web应用程序而不是Windows应用程序?是否可以构建一个事件处理程序,该事件处理程序在按下某个键时将触发?也许我必须将项目转换为Windows应用程序?

3 个答案:

答案 0 :(得分:2)

是的,这就是原因。请记住,在Web应用程序中,功能是在服务器和客户端之间分配的。如果您想对按键做出反应,则需要在客户端进行操作,这意味着使用JavaScript。

答案 1 :(得分:0)

您正在使用Asp.Net Web窗体应用程序。它存在的根本原因是帮助以前使用WinForms应用程序的开发人员转向Web开发。这就是为什么存在一些相似之处的原因,例如WinControls <-> WebControls。但是请不要忘记,您现在正在访问Web。您的Button_onClick事件的运作方式完全不同。如果在WinForms上,则直接通过按钮按下来调用;在WebForms上,您的表单将被转换为带有<form><input . . .>标签的HTML页面。并且它会自动构建javascript,因此,当您按下按钮时,会向服务器发出POST调用。然后,您的服务器接收请求,并在所谓的“页面周期”期间将执行定向到Button_onClick

一旦确定您的应用程序需要成为Web应用程序,您可能应该忘记使用Web Forms进行操作,因为该系统不是真正的Web开发。真正的以网络为中心的开发将是基于Javascript的UI,可能使用诸如Vue或Angular之类的框架并将Asp.net Web Api用作服务器应用程序。也许您应该从Asp.net MVC开始。这将使您专注于单个应用程序,因为使用MVC时服务器和客户端组件是一起开发的。

回到主要问题-是的,有2个不同的系统,不希望兼容。即使外观相似,它们的行为也可能有所不同。

答案 2 :(得分:0)

为什么要捕获按键?

您可以控制通过代码输入文本框,例如,仅输入数字;

  

asp:TextBox ID =“ TextBox3” runat =“服务器” Width =“ 50px”   AutoComplete =“ off” MaxLength =“ 20” type =“ number” step =“ any”   TabIndex =“ 9”>