您好、欢迎来到现金彩票网!
当前位置:盛世彩票 > 复合控件 >

c 新建一个窗口

发布时间:2019-07-26 02:07 来源:未知 编辑:admin

  目的就是在Form1中的菜单项中调用Union1对话框进行空间叠加分析。

  在Form1中双击对应菜单项(比如说是Union项)弹出代码编辑窗口,在Union项下,输入以下代码:

  以上代码中,Union1指的是用来进行空间叠加分析的对话框,unionForm为定义的一个局部变量。

  此代码也可以弹出Union1对话框来,但是这个与上面第一个代码之间是有区别的,那就是,采用ShowDialog()函数的时候Form1不能显示为当前窗口,也就是说当前窗口只能是Union1,而采用Show()函数时,两个窗口都可以成为当前窗口

  若现在有另外一个窗口frame3(无参)要传参(由于没有参数,功能可以说成是在frame3窗口中点击某个按钮打开frame2窗口)给frame2

  登录成功后,通过构造函数传入登录窗口的参数到主窗口,这样在主窗口里可以直接对登录窗口操作

  这样系统启动时,运行的是主窗口程序。然后在主窗口加载时去调用登录窗口就可以了。

  一般而言,Visual Studio 2005中自带的几十种控件已经足够我们使用了,但是,在一些特殊的需求中,可能需要一些特殊的控件来与用户进行交互,这时,就需要我们自己开发新的、满足用户需求的控件。

  复合控件(Composite Controls):将现有的各种控件组合起来,形成一个新的控件,来满足用户的需求。

  扩展控件(Extended Controls):就是在现有的控件基础上,派生出一个新的控件,增加新的功能,或者修改原有功能,来满足用户需求。

  自定义控件(Custom Controls):就是直接从System.Windows.Forms.Control类派生,也就是说完全由自己来设计、实现一个全新的控件,这是最灵活、最强大的方法,但是,对开发者的要求也是最高的。要实现一个自定义控件,必须为Control类的的OnPaint事件编写代码,在OnPaint事件中实现自定义控件的绘制工作。同时,还可以重写Control类的WndProc方法,来处理底层的Windows消息。所以说,要实现一个自定义控件,对开发者的要求较高,要求开发者必须了解GDI+和Windows API的知识。

  复合控件实际上是控件的集合,类似于堆积木。因此,可以按照用户的需求,把VS 2005工具箱中的控件任意组合起来,形成一个复合控件。在以后使用中,将生成的这个复合控件作为一个控件来对待。

  复合控件一般都是从UserControl类派生而来,因此复合控件(用户控件)可以在“UserControl测试容器”中进行测试。

  第二步:向复合控件中添加Visual Studio 2005中的控件组合。

  直接按F5,或者点击“生成”菜单,选择其中的“生成解决方案”菜单向,就可以生成复合控件。

  这里,我们可以看到,复合控件被加入到工具箱中了,但是使用一个默认的图标显示的(小齿轮),要在工具箱中显示一个我们自定义的图标有两种方法,这里我们先讲第一种。

  其实,当我们直接按F5生成复合控件时,会弹出一个“用户控件测试容器”,在这个容器中,显示了我们的复合控件MyDigitalClock的运行情况,同时在其右侧,还有一个属性窗口,通过改变属性窗口中的属性设置,就可以改变复合控件的相应状态。比如,我们修改一下ClockBackColor属性和ClockForeColor属性(即设置一下背景色和前景色),可以看到,MyDigitalClock控件的样子发生了变化。

  上面是通过“用户控件测试容器”来对复合控件进行测试,实际上,我们还可以通过创建一个新的Windows项目来对复合控件进行测试。

  扩展控件(Extended Controls):就是在现有的控件基础上,派生出一个新的控件,增加新的功能,或者修改原有功能,来满足用户需求。

  扩展控件保留了原来控件的界面、属性、方法,同时还可以扩展原有控件功能,实现新的功能,满足用户需求。

  界面上要有所变化,就要重载OnPaint方法,对原有控件的界面进行重新绘制。

  直接按F5,或者点击“生成”菜单,选择其中的“生成解决方案”菜单向,就可以生成复合控件。

  复合控件一般都是从UserControl类派生而来,因此复合控件(用户控件)可以在“UserControl测试容器”中进行测试。但是,如果对于扩展控件,一般都不直接从UserControl类派生的,而是从需要扩展的那一类控件本身,就像我们后面要讲到的XButton扩展控件一样,它是从从Button类继承的,是以添加一个类的方式加到项目里,(复合控件是以一个控件库项目,待查证),这时测试就没有办法在“UserControl测试容器”中进行测试,只能新建一个Windows应用程序来对扩展控件进行测试。

  自定义控件(Custom Controls):直接从trol类派生,也就是完全由自己来设计、从头开始创建一个全新的控件。

  Control类提供了创建一个控件所需要的基本功能,包括鼠标和键盘处理事件等,但是,要注意的是,Control类没有提供创建一个控件所需要的图形界面和特定的功能。因此,要创建一个自定义控件,必须自己来绘制控件的界面和特定的功能。

  要绘制自定义控件的界面,必须在OnPaint事件中编写代码,在OnPaint事件中实现自定义控件的绘制工作。同时还可能重写Control类的WndProc方法,来处理底层的Windows消息。

  所以说,要实现一个自定义控件,对开发者的要求较高,要求开发者必须了解GDI+和Windows API的知识。

  创建自定义控件是开发自己的控件三种方法中最复杂的,因为,控件长什么样子,自己来写;控件有什么属性,自己来写;控件用什么功能,自己来写。

  第一步:新建一个类库项目(直接从Control类派生) 或者 新建一个Windows控件库项目(从UserControl派生)

  一般而言,自定义控件都有相应的用户界面,因此,至少需要添加System.Windows.Forms的引用

  如果自定义控件是从Control类派生的,那么,自定义控件就不能在“UserControl测试容器”中进行测试,只能新建一个Windows应用程序来对自定义控件进行测试。

  当然,自定义控件也不一定非要从Control类派生,也可以从UserControl类派生而来,如果是从UserControl类派生而来,就可以在“UserControl测试容器”中进行测试。

  第一步:新建一个类库项目(直接从Control类派生) 或者 新建一个Windows控件库项目(从UserControl派生)

  在WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开另一个窗口,可以按如下做法:先在第一个窗口声明一个公共的bool变量并赋值为true:如pu

  在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开另一个窗口,可以按如下做法:先在第一个窗口声明一个公共的bool变量并赋值为true:如publi...

  在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开另一个窗口,可以按如下做法:先在第一个窗口声明一个公共的bool变量并赋值为true:

  在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被自动关闭了。因此要关闭的窗口不能用Application.Run创建。要在关闭一个窗口的同时打开另一个窗口,可以按如下做法:先在第一个窗口声明一个公共的bool变量并赋值为true: 如publicboolcloseflag=true;在pro

http://coolscala.com/fuhekongjian/761.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有