日志文章

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
事件主要是判断事件是否为空,如果不为空就执行事件下绑定得方法







Tags: net   vs  

类别: 小菜鸟也来谈IT |  评论(2) |  浏览(4551) |  收藏
2楼 [匿名]iolov1987 2008年07月08日 13:06:56 Says:
<a href="http:www.goxk.com">
1楼 [匿名]sdf34fsdsdf 2008年07月06日 05:27:28 Says:
[url=http://www.jipiaoonline.cn]
0楼 [匿名]sdf34fsdsdf 2008年07月05日 03:24:26 Says:
[url=http://www.jipiaoonline.cn]
-1楼 [匿名]sdf34fsdsdf 2008年06月30日 02:34:39 Says:
[url=http://www.jipiaoonline.cn]
-2楼 [匿名]sdf34fsdsdf 2008年06月29日 20:10:33 Says:
[url=http://www.jipiaoonline.cn]
-3楼 [匿名]sdf34fsdsdf 2008年06月28日 12:37:30 Says:
[url=http://www.jipiaoonline.cn]
发表评论