
2007年07月26日 09:21:19
关于c#.net基础问与答整理
|
这几天在研究c#.net,初学遇到很多菜鸟问题!将这些问题整理了一下,会在以后不断的进行更新,以提高自己的水平,并和大家分享讨论,有不对的地方,请高手们指点! 学习中遇到的问题及解决 1 关于"input type=text"的OnKeyUp事件的一个问题~ 近日在用OnKeyUp事件来限制输入字符只能为数字的时候,发现一个问题。 举例如下: <input style="width: 70px; height: 22px" size=13 type=text name=test1> <input style="width: 70px; height: 22px" size=13 type=text name=test2> 此时,如果在test框中输入任意字母并按住不放,同时用鼠标点击test2,则按住的字母能够被输入到test1中。关于此问题,不知各位是否碰到过?具体原因是什么呢? (请不要说用onchange事件解决!) ********解决: 没执行onkeyup事件就失去焦点了。 OnkeyUp必须在有Focus(焦点)的情况下被触发. OnChange是在失去Focus的情况下被触发. 2 什么是焦点? **********解决: 焦点是接收用户鼠标或键盘输入的能力。当对象具有焦点时,可接收用户的输入。在 Microsoft Windows 界面,任一时刻可运行几个应用程序,但只有具有焦点的应用程序才有活动标题栏,才能接受用户输入。在有几个 TextBox 的 Visual Basic 窗体中,只有具有焦点的 TextBox 才显示由键盘输入的文本。 如果你是明星,记者们摄像机镜头中拍到的你就是焦点 如果镜头中没有了你,焦点就移到的地方去了!所有你看得见拿的到的都可以成为焦点! 在VF中,所有可视的基类其本上都有焦点.比如有两个TEXT控件,你的鼠标点到哪个控件那个控件就得到了焦点,你可用在里面输入文字什么的而另一个TEXT就什么也不做,等待得到焦点 所有有焦点的控件都可以用程序的方法或人工的方法得到焦点 例如:我想让一个按钮默认为可以敲回车键就可以响应的状态,应该怎么做呢? *********解决: 控件的属性有个default属性,设置为true就行了。注意:一个画面只能设置一个ture. 3 tabindex属性通过[Tab]键访问元素 在给tabIndex特性赋值时,要留意几个问题。下面是几个赋值规则: 带0值tabIndex的元素根据源代码(或默认页面行为)进行排序。 大于0的tabIndex值设定其tab顺序。所有带正tabIndex值的元素出现在所有带0 tabIndex值的元素之前。 如果你犯了一个错误,把同一个tabIndex赋予给多个元素,像其它元素一样,它们会以一个0值tabIndex进行处理。 将tabIndex赋值为-1,则在使用[Tab]键时,此元素被忽略。注意:如果使用-1值时,onfocus与onblur事件仍被启动。 tabIndex的值可为0至32767之间的任意数字。 列表A中的样本HTML代码将一个tabIndex值赋予给页面中的每一个项目。输入栏与DIV标签包含tabIndex特性,允许用户用键盘仔细阅读页面元素。(DIV标签并不提供与获得焦点有关的太多信息,但我想用非输入元素说明tabIndex的应用情况。)值为-1的按钮被赋值,在应用[Tab]键时,它们即被忽略。 你可能要花许多时间来设计网络窗体,使其具有视觉吸引力,并能被后端服务器组件正确处理。但是,你可能忽略了要用非标准技术或浏览器对其进行测试。典型的例子就是放弃鼠标,而依靠键盘来导航窗体。HTML标准包含tabIndex特性,它允许你控制通过[Tab]键访问的项目。 4 AutoEventWireUp到底对页面有什么影响? 问题: 我把一个页面的AutoEventWireUp改为true和false,但是没有发现有明显区别啊?请哪位大侠讲解一下?谢谢! **********解决 如果@Page指令的AutoEventWireup属性设置成True,网页构架就会自动调用网页事件,尤其是 Page_Init和蔼Page_Load方法,在此情况下,就不需要明确的Handles参数或委托; AutoEventWireup属性的缺点是它需要网页事件处理程序拥有可预期的特定名称,因此在VS中, AutoEnentWireup属性的默认值是False,此时设计器会产生明确的代码将网页时间绑定至方法; 如果将AutoEventWireup属性设置为True,则VS会产生代码来绑定事件,而且网页架构会自动根据事件的名称来调用事件,这可能会导致网页运行时相同的事件代码被调用2次. 5 CodeFile属性的作用? CodeFile 指定指向页引用的代码隐藏文件的路径。此属性与 Inherits 属性一起使用可以将代码隐藏源文件与网页相关联。此属性仅对编译的页有效。 6 Inherits属性的作用? Inherits的意思是继承,属于面向对象的程序设计语言(OOP)中的核心概念之一,主要用于从类复制属性,这样可以提高代码的重用性。 指定继承的关键是Page指令的Inherits属性,可以在该属性中指定最终的页面类继承的基类。这个基类就是隐藏代码中定义的从System.Web.UI.Page派生的类。指定该基类 有两种方式 , 一种是直接指定隐藏代码的源文件, 另一种是指定该基类编译生成的装配件。 7 <%@ Register Src= TagName= TagPrefix= %>全析 1)@ Register 创建标记前缀和自定义控件之间的关联,这为开发人员提供了一种在 ASP.NET 应用程序文件(包括网页、用户控件和母版页)中引用自定义控件的简明方法。 TagPrefix 定义控件位置的命名空间。有了命名空间制约,就可以在同一个网页里使用不同功能的同名控件。 TagName 指向所使用控件的名字。在同一个命名空间里的控件名是唯一的。控件名一般都表明控件的功能。 Src 指向控件的资源文件。资源文件使用虚路径("control.ascx" 或 "/path/control.ascx"),不能使用物理路径("C:\path\control.ascx.")。 详细参考:http://www.blueidea.com/tech/program/2003/903.asp 8 runat="server" 的含义? 加了 runat="server"该控件就成了服务器端控件了 服务器端的控件主要是用于bs模式,当打开browser对其内容进行操作后,就会一同更改server上的内容;而若是html控件就不会反应到server上。 9 什么时候向页面那样,用onserverclick而不是onclick?<input type=”submit” value=”Submit” runat=”server” onserverclick=”ShowValues”> *************解决: onserverclick在服务器上运行,onclick在客户端执行 10 Page_Load和OnLoad的区别和关系 Page_Load是事件,当服务器控件加载到 Page 对象中时发生; Page_Load是事件绑定得方法 page.load + = new eventhandler(Page_Load),这里写哪个就当发生事件得时候做哪个 OnLoad是方法,引发 Load 事件。OnLoad()是引发Load事件主要是判断事件是否为空,如果不为空就执行事件下绑定得方法 |
一共有 -1 条评论