精华内容
下载资源
问答
  • 窗体

    2014-05-09 00:31:00
    常见的图形设备有显示器,打印机。 Winform封装了GDI底层的接口,提供一组面向对象的接口,供我们使用 Partial关键字,用他修饰的类叫分布类/部分类,指示该类是整个类的一部分 Text是个字符串,表示关联文本 ...

    GDI:图形设备接口

    所有能够将电子信号转换成图像显示的设备是图形设备,

    常见的图形设备有显示器,打印机。

    Winform封装了GDI底层的接口,提供一组面向对象的接口,供我们使用

    Partial关键字,用他修饰的类叫分布类/部分类,指示该类是整个类的一部分

    Text是个字符串,表示关联文本

    控件的Name属性表示该控件的对象名

     Event 事件:描述一件事已经发生,

    当一个事件发生时,让他运行我们指定的代码叫做注册事件,

    所有控件都拥有事件。

    什么时候引发控件重绘:

    1、控件整体或局部可见部分发生改变时

    2、控件被强制刷新时

    (语法)  强制重绘窗体   控件名.Refresh();

    画一个矩形:

    1、得到该控制图形对象:

    1.1 使用 控件名.CreateGraphic()方法得到全新的图形对象

    1.2使用事件参数e.Graphics得到正在绘制的图形对象

    后绘制的图形会覆盖先绘制的图形

    Graphics g= e.Graphics;

    2、通过图形对象作画

    Pen p=new Pen(Color.Red(颜色),5(线条宽度));

     G.DrawRectangle(p,30,30,100,30);

     

    图片对象获取方式:

    1、         通过Image.FromFile(“图片路径”)

    2、         将图片加载到资源文件中,从资源文件中获取

    获取资源的两种方式:

    1、Propertise.Resources.资源名 直接获取

    2、Propertise.Resources.ResourceManager.GetObject(“资源名”)返回类型object

     

     

     

    .net Framwork

    类型种类一共有:类class、结构struct、枚举enum、委托delegate、接口interface

    结构的特点:1、结构定义的类型是值类型

    2、结构不能赋值为null

    3、结构有隐式的午餐构造函数,如果结构有显式的有参构造函数,无参构造函数依然存在,并且不能有无参显式构造函数。

    散列分布:某些字段或属性他们的取值情况固定,并且只能取到其中一种情况,则他们的取值范围叫散列分布,散列分布的值适合使用枚举

     

     

    进程是调度和分配资源的单位,通常情况下一个应用程序对应一个进程,该进程为应用程序提供了在运行过程中所需要的全部资源,进程与进程之间资源深度隔离(不能共享资源)、

    线程、是进程中的执行单元,一个进程可以衍生多个线程,CPU在同一个时间点只能执行一个线程, 

    前台线程:当线程创建者所在的线程结束时,前台线程不会结束二后台线程结束

    线程同步:当多个线程需要占用一个资源时,要他们占用有序进行,

    转载于:https://www.cnblogs.com/raodaye/p/3717978.html

    展开全文
  • winform窗体

    2019-08-13 11:02:03
    中文名 ...Windows窗体的一些重要特点如下: 功能强大 Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。 操作方便 新的数据提供程序管理:数据提供程序管理提供易于连接O...

    WinForm是·Net开发平台中对Windows Form的一种称谓。
    中文名
    Winform
    特 点
    功能强大
    操作方便
    新的数据提供程序管理
    使用安全
    利用公共语言运行库的安全特性
    特点

    Windows窗体的一些重要特点如下:
    功能强大
    Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。
    操作方便
    新的数据提供程序管理:数据提供程序管理提供易于连接OLEDB和odbc数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等。
    使用安全
    Windows窗体充分利用公共语言运行库的安全特性。这就意味着,一切都可以通过Windows窗体来实现,包括在浏览器中运行的不可信控件和用户硬盘上安装的完全可信的应用程序。
    在这里插入图片描述
    优点
    控件灵活
    Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件。
    WinForm控件 [1] 是指以输入或操作数据的对象。比如ComponentOne是.net平台下对数据和方法的封装。有自己的属性和方法。属性是控件数据的简单访问者。方法则是控件的一些简单而可见的功能。包含在 .NET Framework 中的 Windows窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。
    数据管理
    方便的数据显示和操作:应用程序开发中最常见的情形之一是在窗体上显示数据。Windows窗体对数据库处理提供全面支持。可以访问数据库中的数据,并在窗体上显示和操作数据。
    向导明确
    向用户提供创建窗体、数据处理、打包和部署等的分布指导。

    展开全文
  • windos - 窗体程序

    2019-11-26 23:25:21
    窗体线程又称为UI线程(User Interface Thread)它通过多种空间接收用户输入并显示结果,UI线程执行消息循环...常见的管理方法 窗体管理方法 特点窗体事件中新建其他窗体对象 方法最简单,反复创建销毁浪...

    窗体线程又称为UI线程(User Interface Thread)它通过多种空间接收用户输入并显示结果,UI线程执行消息循环任务:

    1. 循环查看消息队列
    2. 获得的消息匹配到函数事件
    3. 执行函数时间
      窗体程学的要素有窗体资源、消息队列和循环结构,它负责接收用户的输入并进行结果显示。

    多窗体管理

    常见的管理方法

    窗体管理方法 特点
    在窗体事件中新建其他窗体对象 方法最简单,反复创建销毁浪费资源,容易产生数据冲突
    使用公共类方法设置窗体显示或隐藏 难度适中、切换灵活、线程控制复杂
    派生ApplicationContext类,编写窗体切换方法 编写难度高、切换灵活

    Windows窗体资源

    程序的查个体对象显示都基于桌面窗口对象,系统为每个窗体资源对象分配唯一的句柄表示。窗体资源的关系有三种划分方式:

    1. Z-order描述窗体显示的前后关系
    2. 根据资源逻辑区域划分成父子关系
    3. 代码重用的窗体类间继承关系
      桌面窗体是其他窗体的最顶级父窗体,内核函数GetDesktopWindow可获取桌面窗体资源标识。

    用户输入与消息机制

    Windows 平台具有两种处理键键盘与鼠标输入的方式,分别是消息机制直接输入检测方式

    消息机制
    消息取值功能划分

    消息取值范围 功能说明
    0~-x3FF 专由Windows操作系统使用
    0x4FF~0x7FFF 用户窗体类的自定义消息
    0x800~0xBFFF 应用程序的自定义消息
    0xC000~0xFFFF 应用程序的String消息
    大于0xFFFF 系统保留

    Windows 具有一个系统消息队列按序存储全部消息,并根据规则再将消息投放到进程的消息队列中。系统为每一个窗体对象创建一个消息队列,消息经分配后由系统队列进入到窗体队列,每一个窗体对象配置一个窗体线程运行消息循环任务。消息循环反复检查消息队列中的消息,根据消息指匹配执行相应的分支代码。

    Windows就有两种先进先出的消息队列,分别是系统消息队列窗体对象消息队列。消息可有系统自动派送,也可由程序主动向其他程序发送,发送方式有两种,一种方式是将消息发送到先进先出的消息队列结构中,这些消息也叫队列化消息,用户设备输入消息等就属于队列化消息,一种方式是将消息直接发送到窗体函数中,这些消息叫非队列化消息。

    驱动程序将用户的键盘与鼠标的输入转化为消息结构放入系统消息队列,消息被分派到当前激活的窗体线程,窗体消息处理函数对消息进行匹配。消息队列是一个系统创建的内存对象,是动态变化的,应用程序会使用一个循环结构来处理消息队列,在每次循环时都用到GetMessage和DispatchMessage函数,GetMesage函数从当前消息队列前去除一个消息结构,DispatchMessage函数对消息进行匹配,使得系统去执行与消息对应的过程。而非队列化的消息则是直接发送到了窗体过程,表示用户激活了某个窗体。

    消息机制是Windows操作系统的重要内核组成,Windows能够为每个窗体应用程序维护一个消息队列。操作系统把用户的输入统一处理为消息,派送到当前激活窗体,隐藏状态的窗体不接收用户输入。 Windows仅有一个激活窗体,用户通过键盘、鼠标产生的消息都i发送到激活窗体,最顶窗体与激活窗体有时是不同的窗体。

    窗体消息重载

    DefWindowsProc 函数又称为消息回调函数,它处于窗体线程的消息循环结构内,虽然每个消息仅对应一次匹配,但是耗时的操作还是会影响后续消息的接收入处理。消息回调函数是窗体程序特有的,Windows平台还支持通用回调函数机制。

    默认的消息处理函数仅处理系统消息,工作线程向窗体发送自定义消息是一种有效的通信方式,SendMessage与PostMessag方法可向特定窗体发送自定义消息。窗体相应自定义消息方式是对Form类的DefWndProc成员函数进行重载。

    消息结构需要填充窗体对象的句柄值,内核函数FindWindow 查找特定窗体资源,EnumWindows函数能遍历所有窗体对象。

    展开全文
  • 网摘》窗体、子窗体

    千次阅读 2014-01-31 22:49:19
    VB6 MDI窗体 控件 其实Picture做为MDI窗体最佳容器,在设计MDI程序时,还是被很多程序员采用的方法。 1.建立MDI窗体;[工程]\[添加  MDI 窗体]  2.在MDI窗体上方画一个Picture1,因为Picture的Align默认是停靠在...

    VB6 MDI窗体 控件

    其实Picture做为MDI窗体最佳容器,在设计MDI程序时,还是被很多程序员采用的方法。

    1.建立MDI窗体;[工程]\[添加  MDI  窗体] 

    2.MDI窗体上方画一个Picture1,因为PictureAlign默认是停靠在顶部的; 

    3.设置Picture1Align属性为2,停靠在底部; 

    4.再在窗体上方画一个Picture2,设置Align3,停靠在左边;

    5.这时你会看到Picture2占了全屏,不要紧,设置Picture2Width300,回车; 

    6.如果愿意,还可继续添加右边和顶边,方法类似;

    7.添加完后,可以设置PictureBorderStyle属性为0,采用没边的样式,这样看起来要舒服得多。

    至此,你就可以在MDI窗体上随意添加其它的控件了。

     

     

    vb6.0子窗体切换有关问题

    现在我使用的是FORMVisible属性控制其是否显示。

    但是如果子FORM很多的话,一个一个写很费事。

    我发现MDIformActiveMDIChild属性,指向当前活动的子窗体。此乃TForm *类型的指针,必要时可强制转换为任意类型的子窗体实例。

    MDIChildCount属性,用于判断已经创建的子窗体的总数。

    MDIChildren属性,是一个TForm *类型的指针数组,指向目前存在的所有的子窗体。结合MDIChildCount属性,可以实现子窗体的遍历。

    这样的话就可以通过循环控制。

    我现在不明白的是MDIChildCount属性中已经创建的子窗体的总数这句话。如果MDIFORMLOAD了一个子窗体,那这个数字就是1吗?还是全部子窗体的个数?

    我的代码中: VB code

    Private Sub MDIForm_Load()

        Form1.Show

    MsgBox Str(MDIChildCount), 1 + 16 + 256 + 0, "MDIChildCount"

    End Sub

    运行结果为什么总是0呢?

     

    VB MDI子窗体切换

    Dim frm As Form

    For Each frm In Forms

    If frm.Name = "你的窗体名" Then

    你的窗体名.SetFocus

    Exit Sub

    End If

    Next

    你的窗体名.Show

     

    给你一段我本人自己开发时写的一个函数:

    Function IsLoadFormII(uFrmName As String) As Boolean

    '//判断窗体是否加载

    Dim uFrm As Form

    For Each uFrm In Forms

    ' MsgBox ufrm.Name

    If uFrm.Name = uFrmName Then

    uFrm.ZOrder 0

    If uFrm.WindowState = 1 Then uFrm.WindowState = 0

    IsLoadFormII = True

    End If

    Next

    End Function

     

     

    创建MDI界面

    要创建MDI界面,首先需要为应用程序创建一个MDI窗体。单击【工程】菜单,执行其中的【添加MDI窗体】命令,弹出【添加MDI窗体】对话框,在【新建】选项卡中选中【MDI窗体】,单击【打开】按钮即可在当前工程中创建一个MDI窗体。

    与普通的窗体相比,MDI窗体具有以下特点:

    在外观上:MID窗体的背景看起来更黑一些,并且有一个边框。如图7.32所示的是MDI窗体与普通窗体外观的比较。

    显示在工程资源管理器中的MDI窗休的图标与普通窗体的图标不同,如图7.33所示。从图标上很容易识别窗体的类型。

    一个应用程序只能有一个MDI窗体。

    MDI窗体上只能放置那些有Alignment属性的控件(如图片框、工具栏等)和具有不可见界面的控件(如计时器和通用对话框控件).其他控件如文本框、按钮等控件不能放置在MDI窗体中。要将这些控件放置在MDI窗体上,可以事先在MDI窗体中放置一个图片框控件,然后将其他控件放置在图片框中。

    不能使用Print方法在MDI窗体上显示文本。可以在MDI窗体中的图片框中使用Print方法来显示文本。

    MDI窗体的大多数属性与普通窗体的属性相同。MDI窗体还有两个特有的属性:

    AutoShowChildren属性和ScrollBars属性。

    AutoShowChildren属性决定在加载子窗体时,是否自动显示它们。如果AutoShowChildren属性的值为True〔默认值),子窗体一载入就显示出来。这就是说,Load语句和show方法的作用是相同的。

    ScrollBars属性决定MDI窗体在必要时是否显示滚动条。当该属性的值为True(默认值)时,如果一个或多个子窗体延伸到MDI窗体之外,MDI窗体上就会出现滚动条。

    子窗体的创建很容易。对于普通的窗体,只要将其MDIChild属性设置为True即可将其设置成为一个子窗体。因此,创建子窗体的方法是:首先创建一个普通窗体,然后将它的MDIChild属性设置为True就可以了。

    细心的用户可以发现,将普通窗体设置为子窗体后,窗体在工程资源管理器中的图标改变了,它与普通窗体和MDI窗体的图标都不同,如图7.35所示。这也是将普通窗体设置为子窗体后,能在设计窗日中看到的唯一的变化。

    注意;MDIChild属性只能在设计阶段通过【属性】窗口设计,不能在代码中设置,并且,在设置该属性前,要确保已经建立了MDI窗体。否则,则程序运行时会出现错误。

    MDI窗体与子窗体创建完成后,接下来的工作就是设计窗体与编写代码了。在MDI窗体上一般只放置菜单栏、工具栏以及任务栏。子窗体的设计则与普通窗体的设计完全相同。也可以先设计窗体,然后改变MDIChild属性。操作顺序不会影响窗体的行为。

    MDI界面的特点

    新建一个工程,使用【工程】菜单中的【添加MDI窗体】命令向工程中添加一个MDI窗体。将工程中已存在的普通窗体的MDIChild属性的值设置为True

    运行该程序,则出现如图7.36所示的界面。这是由于在默认情况下启动窗体是子窗体。在加载子窗体时,MDIChild窗体会自动加载并显示。

    在【工程属性】对话框中将启动窗体设置为MDI窗体,运行程序,则出现如图7.37所示的界面。加载MDIChild窗体时,其子窗体并不会自动加载。子窗体的加载与卸载等操作与普通窗体相同。为MDI窗体的Load事件编写如下代码:

    Private Sub MDIForm_Load()

    Foaml.Show

    End Sub

    如果MBI窗体的AutoShowChildren属性值为Ture,也可以使用Load Forml语句来显示子窗体。

    再次运行程序。可以发现子窗体显示在MDI窗体中,如图7.36所示。

    与卸载普通窗体一样,卸载MDI窗体也是使用Unload语句。例如,为程序添加下列代码,运行程序,双击MDI窗体即可卸载它。

    Private Sub MDIFrom_DblClick()

    Unload MDIForml

    End Sub

    子窗体最小化后将以图标的形式出现在MDI窗体中,而不会出现在Windows的任务栏中。子窗体最大化后,它的标题出现在MDI窗休的标题栏中。运行程序,单击子窗体的最小化按钮使其最小化,如图7.38所示。单击子窗体的最大化按钮使其最大化。单击MDI窗体的最小化按钮使其最小化,所有子窗体都不可见,并且只有MDI窗体的图标出现在任务栏中。读者还可以移动子窗体,它不会移动到MDI窗体之外。

    MDI窗体与子窗体中都可以建立菜单,并且建立菜单的方法与普通窗体相同。但在菜单的显示下,NDI应用程序还有一些自己的特色。当没有打开子窗体时,MDI窗体上显示自己的菜单。当打开了子窗体时,则MDI窗体的菜单栏上显示当前活动子窗体的菜单。也就是说,子窗体的菜单取代了MDI窗体菜单栏中的菜单。

    利用菜单编辑器为MDI窗体创建一个菜单。为子窗体创建3个菜单。运行程序,可见,子窗体中的菜单取代了MDI窗体本身的菜单,出现在MdI窗体的菜单栏中。单击子窗体的关闭按钮将其关闭,则MDI窗体菜单栏中显示的是其本身的菜单。

    新建子窗体

    多文档应用程序中最常见的一项操作是通过新建命令建立多个子窗体。例如,执行Word【文件】菜单下的【新建】命令,可以新建出多个子窗体。这些子窗体的外观与功能完全相同,只是在名称上使用编号区分,如“文档1“文档2等。

    要实现这一功能,一种最直观的方法是:首先在工程中添加若干个窗体,并将它们设置为MDI窗体的子窗体。然后,在程序运行时,通过【新建】菜单来打开它们。事实上,使用这种方法实现起来是很困难的,缺乏灵活性并浪费系统资源

    VB中,是通过对象变量来为MDI窗体生成了窗体的。

    声明窗体的对象变量的格式如下:

        Dim变量As new窗体名

       其中“窗体名”是一个已存在的子窗体的名称。在声明了对象变量后,通过语句。

       变量.Shaw

    就可以显示出一个新的窗体。

    实例7.7新建子窗体

    新建一个工程,向当前工程中添加一个MDI窗体,并为它创建一个【文件】菜单,其中包含【新建】与【退出】两个选项。其中工程中各对象的属性设置如表7.9所示。

    打开【代码】窗口,编写代码如下:

    Private Sub MenNew_Click()

    Dim DocForm As New FrmChild

    Static i As Inteqer

    DocForm.Caption=无标题& i+1

    DocForm.show

    i=i+1

    End Sub

    Private Sub MenExit_Click()

    End

    End Sub

    MenNew_Click事件过程中,定义了一个静态变量i,通过该变量可以使子窗体的标题出现编号。

    设置启动窗体为MDI窗体,运行程序,出现界面。执行【文件】菜单中的【新建】命令,则MDI窗体中会出现一个标题为“无标题1的子窗体。再次执行【新建】命令,则又出现一个标题为“无标题2的子窗体。执行3次【新建】命令后的结果。

    子窗体FrmChild是新建窗体的模板,新创建出的子窗体将与FrmChild子窗体的外观完全相同。例如,在FrmChild窗体中放置一个文本框,则新建的子窗体中也有一个文本框,并且名称是相同的。因此,要更改子窗体的外观,只需更改模板子窗体的外观就可以了。

    除此之外,模板子窗体的事件过程对新建子窗体也有效。例如,编写模板子窗体的事件过程如下:

    Private Sub Form_Click()

       Text1.Text=欢迎

    End Sub

    运行程序,在新建的子窗体上单击,则子窗体中的文本框内会显示“欢迎”两个字。单击子窗体“无标题2后的效果。

    MDI窗体还有一个重要的属性-ActiveForm,使用该属性可以代替当前活动子窗体的名称。例如:

    MDIForm.ActiveForm.Caption=ABCD

    语句的功能是将当前活动子窗体的标题更改为AECD

    使用ActiveForm属性可以引用当前活动子窗体的任意属性、方法或事件,而不必知道子窗体的名称。

    将【文件】菜单中【退出】选项的Click事件过程更改为:

    Private Sub MenExit_Click()

       Unload MDIForm1.ActiveForm

    End Sub

    这样,执行【退出】命令的效果是将当前活动的子窗体卸载。

    创建【窗口】菜单

    大多数应用程序都有一个【窗口】菜单,在该菜单中包含有层叠、平铺和排列图标等设置子窗体排列方式的命令,还显示有所有已打开的子窗体列表,从中可方便地选择要激活的子窗体。如图7.50所示的是VB的【窗口】菜单。

    如果要在MDI窗体的某个菜单中显示了窗体列表,可以在【菜单编辑器】对话框中选中该菜单的【显示窗体列表】复选框,或者在【属性】窗口中将WindowsList属性的值设置为True.不需要用户编写任何代码。

    MDI窗体的Arrange方法可以使子窗体按一定的规律排列。Arrange方法的一般格式为:

    MDI窗体名。Arrange参数。

    其中“参数”是一个整数,表示所使用的排列方式,系统共提供了四种排列方式,如表7.10所示。

    http://www.educity.cn/help/VB/201003051038471315.htm

     

    VB中多个窗体间的切换显示

    有A、B、C、D...多个窗体,能否使用timer控件使得这多个窗体之间轮回切换显示。前提是不用command等的别的控件,即不用人为操作的切换
    方法如下:
    每个form上都放一个timer,设置其interval属性=2000
    加入有3个form
    在第一个form1的代码框中写如下代码:
    Option Explicit
    Private Sub Form_Activate()
    Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Timer()
    Form1.Hide
    Form2.Show
    Timer1.Enabled = False
    End Sub
    第二个form2如下:
    Option Explicit
    Private Sub Form_Activate()
    Timer1.Enabled = True
    End Sub
     
    Private Sub Timer1_Timer()
    Form2.Hide
    Form3.Show
    Timer1.Enabled = False
    End Sub
     
    第3个form3,如下:
    Option Explicit
    Private Sub Form_Activate()
    Timer1.Enabled = True
    End Sub
    Private Sub Timer1_Timer()
    Form3.Hide
    Form1.Show
    Timer1.Enabled = False
    End Sub
    若需要更多窗体,请参照上面的例子进行修改!
     
     
    Form2.Show 1窗体以模态方式显示窗体,不能操作下面窗体。
    Form2.Show 0窗体以无模式显示窗体,可以操作下面窗体。
     

    假如有多个窗体,刚才开始运行时,是只加载启动窗体,还是全部的窗体都会加载?

    只加载启动窗体,证明:
    我在form1 的load事件里写了Form1.Caption = Now
    然后在它的一个按钮里写
    Private Sub Command1_Click()
    Form2.Show
    End Sub
    同时在form2的load事件里写
    Private Sub Form_Load()
    Form2.Caption = Now
    End Sub
    运行后过一会儿再点按钮,两个窗体的标题就是它们加载的时间,你会发现两个时间是不一样的,说明它们不是同时加载的
     
     

    VB中多窗口间的关系及编程

    问题提出
    对于编写复杂的应用程序,要在一个窗口中实现所有的功能比较困难,于是可以按多个窗口设计原则进行。不同的功能模块在不同的窗口中实现,相同的功能模块,原则上应在同一窗口中实现,但是如果比较复杂,可以用多个窗口来实现,那么,这些窗口如何布局,建立什么样的关系比较合理呢?
    问题分析
    在VB中,多个窗口之间的显示关系,可以形象地描述为三种:
    1、独立关系:两个窗口都可独立显示,互不干扰;
    2、父子关系:两个窗口按父子关系显示,子窗口在未关闭之前,父窗口无法激活,得不到活动焦点;
    3、母子关系:VB中的MDI窗口,可以容纳多个MDIChild属性为True的窗口,我们称这种关系为母子关系,母窗口永远处于活动状态,子窗口之间属并列关系,只有一个是活动的。
    问题解决
    1、独立关系的实现很简单,从Form1显示到Form2,只需用一行代码:
    Form2.Show
    如果Form2显示后,不显示Form1,还需要在 Form2.Show 前添加一行代码:
    UnLoad Form1
    2、父子关系的实现,比如,将Form2显示为Form1的子窗口,只需一行代码:
    Form2.Show 1, Form1
    上面的代码中,指明了父窗口为Form1。
    3、母子关系的实现,用标准的窗口显示代码即可。
    编程实现
    启动VB,新建一工程,向工程中添加一个MDI窗口MDIForm1,添加三个标准窗口:Form2,Form3,Form4,并将Form3、Form4的MDIChild属性设置为True。如图。然后编写程序代码:
    从Form1独立显示到MDIForm1的程序代码:
    Unload Form1
    MDIForm1.Show
    将Form2显示为Form1的子窗口的程序代码:
    Form2.Show 1, Form1
    显示MDIForm1中的子窗口的代码:
    Form3.Show
    Form4.Show
    将Form2显示为MDIForm1的子窗口的程序代码:
    Form2.Show 1, MDIForm1
    说明:一个VB工程中最多存在一个MDI窗口,且MDI窗口不能显示为其它窗口的子窗口,但可以作为其它窗口的父窗口;MDI窗口的子窗口之间属平等关系,它们之间不能建立父子关系。
    注:本程序在VB6+Win98环境下调试通过。
     
     

    实现窗口间的参数传递

    建立一个模块加入如下代码:
    Sub openfromwithparam(ByVal str As String)
    Dim Form As Form2
    Set Form = New Form2
    Form.str = str
    Form.Label1.Caption = Form.str
     
    Form.Show
    End Sub
    form1代码如下:
    Private Sub Command1_Click()
    Call openfromwithparam("liyong")
    End Sub
    Private Sub Form_Load()
    End Sub
     
    form2代码:
    Public str As String
    Private Sub Form_Load()
    End Sub 

     

    防止重复打开MDI子窗体

    1.         If Me.MdiChildren.Length < 1 Then  
    2.             '如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例  
    3.             ShowForm(MDIChildForm)  
    4.             Exit Sub  
    5.         Else  
    6.             Dim x As Integer  
    7.             Dim frmyn As Boolean  
    8.             For x = 0 To (Me.MdiChildren.Length) - 1  
    9.                 Dim tempChild As Form = CType(Me.MdiChildren(x), Form)  
    10.                 If tempChild.Name = MDIChildFormName Then  
    11.                     frmyn = True  
    12.                     '检测到有该MDI子窗体,设为TRUE 并退出循环  
    13.                     Exit For  
    14.                 Else  
    15.                     frmyn = False  
    16.                 End If  
    17.             Next  
    18.             If frmyn = False Then  
    19.                 '在打开的窗体中没检测到则新建  
    20.                 ShowForm(MDIChildForm)  
    21.             Else  
    22.                 '在打开的窗体中检测到则激活  
    23.                 Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)  
    24.                 MDIChildFrm.Activate()  '使子窗体激活  
    25.                 MDIChildFrm.WindowState = FormWindowState.Normal  
    26.             End If  
    27.         End If  
    
    展开全文
  • WinForm 窗体属性

    2016-12-04 22:14:00
    WinForm - C/S 客户端 B/S 网页端 客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网...常见窗口类型:1、记事本 2、计算器 3、杀毒软件、QQ这种漂亮的窗体 4、不规则窗体 窗口布局: (...
  • 模式窗体详解

    2010-09-23 17:53:00
    内容索引 概述 模式窗体的属性设置 模式窗体中的...本文不对模式窗体的定义、特征、功能做具体讨论,主要把重点放在如何在.net窗体应用程序中有效的使用模式窗体,解决使用模式窗体中碰到的常见
  • 实现消息的分区、局部有序以及消息的重读机制,同一时候配合持久化方法可实现滑动窗体; 资源的管理主要借助于 Yarn ,利用消息队列的方式显现消息处理,同一时候通过备份方式显示数据局部容错; Yahoo Apache...
  • c# 透明窗体

    千次阅读 2012-09-20 09:35:44
    网上也看过很多做.NET窗体的例子,我只是把网上的这些东西综合了一下,主要有下面这些特点: 1、边框是半透明的,透明度可根据需要自己更改; 2、可以改变窗体的大小,改变后样式不变; 3、窗体的边框是不...
  • HTML窗体指南

    千次阅读 2016-02-28 21:17:32
    在这里我们使用一些常见的技巧:协调字体、大小和边框: intput , textarea { /* To make sure that all text fields have the same font settings By default, textareas have a monospace font */ ...
  • 1.Windows窗体应用程序的各种组件 2.windows窗体控件的主要类别和功能 3.Windows窗体应用程序处理事件的方法 4.添加并配置Windows窗体和控件 5.创建时间处理程序并监视程序 6.在程序运行时向窗体添加控件和事件...
  • C# 模态窗体详细介绍

    2014-09-28 09:26:58
    摘要:本文阐述了在基于.NET平台的Windows程序开发...本文不对模态窗体的定义、特征、功能做具体讨论,主要把重点放在如何在.net窗体应用程序中有效的使用模态窗体,解决使用模态窗体中碰到的常见问题。  模态窗体
  • 对话框与多窗体设计

    2020-09-15 17:03:37
    对话框与多窗体设计 本章介绍对话框和多窗体设计,调用方式,数据传递等问题 - Qt提供的标准对话框的式样 - 自定义对话框的设计和调用 - 在一个应用程序中如何设计多种窗体,基于QDialog, QWidget, QMainWindow创建...
  • java swing开发窗体程序开发(一)GUI编程

    万次阅读 多人点赞 2019-04-05 21:37:27
    Java SWing就是java提供的一个类库专门用于开发窗体程序的,相对于C#的winform,java swing的开发要比C#更加麻烦,他不像C#拥有可视化的界面编辑工具 而是需要像QT一样纯代码式GUI编程。java的好处就是通用性强,跨...
  • VB 窗体的设计及应用

    2014-05-08 23:39:22
     掌握窗体设计 100 u   掌握多重窗体的设计与应用 u   掌握响应鼠标与键盘事件 上机运行了局如下:画直线,在鼠标被按下的位置画一个端点,在鼠标松开的位置画另一个端点。   重点:窗体及...
  • Form.ShowDialog()方法 (窗体显示为模态窗体) Form.Show方法()方法 (窗体显示为无模态窗体
  • C#窗体间传值的几种方式

    千次阅读 2013-12-28 23:22:11
    特点: 传值是单向的(不可以互相传值),实现简单 实现代 码如下: 在窗体Form2中 int value1; string value2; public Form2 ( int value1 , string value2 ) {  InitializeComponent ( );  this.
  • 游戏UI框架设计(三)---窗体的层级管理    UI框架中UI窗体的“层级管理”,最核心的问题是如何进行窗体的显示管理。窗体(预设)的显示我们前面定义了三种类型: 普通、隐藏其他、反向切换。代码如下: ...
  • C# 单例模式和窗体的单例打开方法   第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我…… public class Singleton{ private static Singleton _instance ...
  • UI框架中UI窗体的“层级管理”,最核心的问题是如何进行窗体的显示管理。窗体(预设)的显示我们前面定义了三种类型: 普通、隐藏其他、反向切换。 “普通显示”模式允许多个窗体同时显示,这种类型应用最多。 ...
  • 但是,常见的情况是,Microsoft 使用了同一个名称来在看上去类似的环境中指代不同的事物,因此,必须谨慎从事,并阅读附属细则。下面介绍开发 Web 窗体控件的五种方法。 第一种选择是从 System.Web.UI.Control ...
  • .  做.NET WinForm的开发也有一段时间了,对.NET的界面设计也有了一定的了解。...网上也看过很多做.NET窗体的例子,我只是把网上的这些东西综合了一下,主要有下面这些特点: 1、边框是半透明的,透明度可根据需

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,428
精华内容 2,971
关键字:

常见的窗体的特点