《究其C#窗体标题不能修改的原因》由会员分享,可在线阅读,更多相关《究其C#窗体标题不能修改的原因(5页珍藏版)》请在金锄头文库上搜索。
1、究其 C#窗体标题不能修改的原因(张宗杰)说明:本实验在同事鲁桥柱老师的帮忙下完成,在此特别感谢他,祝他身体健康,工作顺利。一、问题用 Visual Studio 创建了一个窗体,名称为 Form1,如图所示:我们可以通过修改窗体的 Text 属性来改变窗体的标题。但是,如何在窗体加载事件中来修改窗体的标题呢?以下代码演示了在窗体加载事件中修改窗体的标题:运行后的效果为:(this 代表当前对象,要调用当前对象的成员就用 this.成员名)不知道大家有没有试过下面的方式:用 Visual Studio 运行该程序,会得到这样的效果:根本就没有改变窗体的标题。这是为什么呢?二、原因因为任何程序的
2、入口都是 main 函数,C也不例外。我们打开项目中的 Program.cs 这个文件,以下是它的代码:程序 Application.Run(new Form1()已经为窗体类 Form1 创建了一个对象了(我们假设该对象的名字是 kk) ,同时每个窗体类都会有 Load 事件(这样对象也就有该 Load 事件了) ,那么在 kk 这个对象的 Load 事件中再写如下代码就会有问题:fm 这个对象只能为它的窗体对象修改 Text 属性,它创建的窗体的标题已经改成 “软件编程”了,因为没有显示该窗体,所以看不到。我们对这段稍做修改:在 Visual Studio 中运行,会看到如下效果:因为调试出错,所以窗体没显示。但是我们运行 Visual Studio 生成的可执行文件,会出现这种情况:这时,我们点击继续,会出现如下效果:总共生成了 37 个窗体(因为在 Load 事件中不段的递归调用了 Show 方法) ,并且有 36 个窗体的标题都改成了我们要求的“软件编程” 。三、总结一个类可以创建很多个对象,但是对象之间不能互相修改属性,例如人类,有个属性叫性别,有 2 个对象张三(男的)和李燕(女的) ,你不能用张三这个对象去修改李燕这个对象的属性性别。