Good The Good The SUTDY。。。想考微软认证 才刚入门 花了490买了70-511的那本微软教材(京东买的 坑爹的贵阿)今天看了下 顺便附上一点翻译432-434页的本人英语不行 是对照着有道词典边看边翻译 话说就那么一丁点看了我3个多小时。。。有没考过了的景友指点下迷津。
管理焦点
焦点是使一个物件获得来自鼠标或者键盘输入的能力,虽然你能有很多控件,但在某一时刻(给定的时间)能有有一个焦点。应用程序里拥有焦点的控件总会在表单(form)里处于激活状态。 每一个控件都能实现Focus的方法。当使用这个方法的时候能够设置焦点到控件里。这个Focus方法返回一个布尔值去决定控件是否成功被设定到了焦点。禁用或者隐藏的控件不能获得焦点。你能够使用CanFocus属性去检查这个控件决定他是否可以获得焦点。 返回True则可以获得焦点,False就不可以 C#例子 If(textBox1.CanFocus == true) textBox1.Focus(); Focus事件会导致这些命令 1. Enter 2. GotFocus 3. Leave 4. Validating 5. Validated 6. LostFocus 当控件获得焦点或者焦点离开的时候,Enter和Leave事件会被分别引发(raise)。当控件第一次获得焦点和焦点离开的时候会分别引发(raise)GotFocus和LostFocus。虽然你可以使用它们的事件去做字段级别(Field-Level)验证,但是Validating和Validated事件更适合去做这个任务 验证中和验证后事件使用Validating事件是最简单的方式去验证数据,在控件失去焦点之前会发生(Validating)。这个事件只有当焦点设置了CauseValidation属性为true的时候才会引发。因此如果你希望使用Validating事件让验证数据进入你的控件,CausesValidation在下一个控件的标签命令里应该设置为true。使用Validating事件,这个CausesValidation属性必须设置为true以便去验证数据。在默认情况下,这个CausesValidation属性在设计时(design time)所有控件里都是True的。有一些典型的控件必须帮助按钮是要设置CausesValidation为False。 Validating事件允许你在控件里实现很复杂的验证。比如,实现一个事件调用(Event Handler)去测试输入一个非常特别的值的格式。另外也可以使用一个事件调用(Event Handler)使得在值输入正确以前不允许焦点离开该控件。 这个Validating事件包括一个CancelEventArgs的实例类。这个类包含了一个属性,Cancel。如果输入到你控件的不是要求的参数,你可以使用Cancel属性去让事件调用(Event Handler)取消这个Validating事件和返回焦点到(原)控件 这个Validated事件会在控件验证成功后引发(fires)。你可以使用这个事件去执行其他基于输入验证成功后的动作。 这是一个调用Validating事件的示例。这个方法要求一个叫TextBox1的入口会允许得到焦点后再才能移动到其他控件 C#代码 Private void textBox1_Validating(objectsender,System.ComponentModel.CancelEventArgs e) { If(textBox1.Text== “”) e.Cancel = true } 表单级别(Form-Level)验证表单级别(Form-level)验证会一次性验证处理所有表单里的字段。这是一个中央步骤的实现表单验证,这通常意味着通知用户可以准备好去其他步骤了。一个高级的表单验证方法是实现一个表单键盘的调用者(handler)。 这是一个怎样创建表单验证方法的例子。这个例子测试表单里的所有的文本框当一个叫BtnValidate的按钮按下的时候。和重设焦点到没有一个没有输入的文本框 省略代码 (代码功能主要是通过foreach获取所有control后然后通过if判断是否为textbox以及文本框是否为空,如果都满足则获得焦点) 表单级别(Form-Level) 键盘调用者(Handler)一个键盘调用者(Handler)是有点复杂的表单验证技术。一个集中的键盘调用者(Handler)允许你管理数据的输入到所有表单里的字段。比如你可以创建一个方法允许命令按钮 只有在适当的输入到每一个字段和执行了特别的键盘敲击动作之后。 KeyPress,KeyDown和KeyUp事件都能实现键盘调用者(Handler)。如果一个表单没有可视化和允许的控件,他会自动的引发(raise)键盘事件。如果有很多控件在表单,这个表单就不会自动引发它们的事件了。为了引发(raise)他们的表单事件,KeyPreview属性在表单里必须设置为True。当设置为True的时候,这个表单会引发(raise)敲击事件在控件获得焦点之前。比如,假定他们的KeyPress调用者有表单和文本框,和这个KeyPreview属性在表单里被设置为True。当一个键被按下的时候,这个表单会首先引发(raise)他的KeyPress事件,表单的KeyPress事件调用者会被首先执行,当他执行完毕之后文本框的KeyPress事件调用者才会被执行 |