精华内容
下载资源
问答
  • VB6.0实现演示父窗体窗体显示与隐藏实例,实现工具栏样式的窗口,附在主窗体旁边。在主窗体上点击控制按钮,可以隐藏副窗体,也可以重新显示窗体。在有些播放器,能看到这种效果。编写过程,使用了VB类库...
  • VB6.0保持窗体显示在最前面的示例代码
  • 这是一个将excel嵌入到form窗体中。很实用
  • 摘要:VB源码,报表打印,报表控件 ...VB在报表中显示窗体控件的数据,报表显示窗口控件的内容,有兴趣的参考下,Vb的报表编程例子,很不错的,特别是初学者更应该参考。 运行环境:Windows/VB6
  • VB源码,界面编程,热键 Vb窗体定制热键的源代码实例,定制成功后,如果要显示窗体,只需按Ctl+Alt+A 即可,就像QQ的聊天窗口一样,一般是按Ctl+Z键即显示了,有些人还是比较喜欢热键的,究其本例的实现方法,...
  • VB-显示窗体在屏幕的坐标,鼠标在窗体上的坐标,无标题移动,一个很实用的移动无标题栏窗体的例子。一般情况下,拖动窗口是要拖动标题栏才可以,本实例的窗口无标题栏,那是怎么拖动窗口呢?希望您下载本源码,一看...
  • 内容索引:VB源码,界面编程,标题栏 VB在运行状态动态显示、隐藏窗体的标题栏,勾选复选框将隐藏、取消则显示,虽然此功能实用性不大,这里主要是想让大家了解VB窗体元素的操作,比如窗口句柄、获得窗口哪方面的...
  • VB窗体显示坐标系,  Private Sub Command1_Click()  Cls '清除窗体  Form1.ForeColor = RGB(255, 0, 0) '设置颜色  Form1.FontBold = True '加粗  Line (0, 0)-(3000, 0) '水平方向画直线  Line (0, 0)-...
  • 完美解决在进行用VB.NET进行cad二次开发时,vb窗体经常闪烁,导致控件显示不全的问题,从此告别框体一闪一闪亮晶晶的感觉。
  • 很多文章里都说在Visaul Basic .NET中显示窗体之前必须先实例化,经测试,也可以与旧Visual Basic 6.0 一样不经实例化直接Form1.Show显示窗体。 一、正确显示窗体 新建一个窗体应用程序,再添加一个模块和一个窗体...

    测试环境:windows 7和Microsoft Visual Studio 2015

    很多文章里都说在Visaul Basic .NET中显示窗体之前必须先实例化,经测试,也可以与旧Visual Basic 6.0 一样不经实例化直接Form1.Show显示窗体。

    一、正确显示窗体

    新建一个窗体应用程序,再添加一个模块和一个窗体。如图:
    在这里插入图片描述
    在这里插入图片描述
    在项目属性页进行如下图设置。
    在这里插入图片描述
    在模块添加如下代码:

    Module Module1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            Form1.Show()
        End Sub
    End Module
    

    测试项目,发现窗体一闪而过,为什么没有长时间显示窗体呢?
    在网友uruseibest的热心帮助下才知道应该使用Form1.ShowDialog()将窗体显示为模式对话框。
    修改代码如下:

    Module Module1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            Form1.ShowDialog()
        End Sub
    End Module
    

    测试项目,代码执行到 Form1.ShowDialog()这句就不再继续向下执行,直到关闭窗体Form1后才往下执行余下代码。
    也可以使用Application.Run(Form1)语句代替rm1.ShowDialog()来将窗体显示为模式对话框。
    对于旧Visual Basic 6.0程序员来说还是很容易理解的,但作为面向对象编程的Visaul Basic .NET语言,最好先把窗体类给实例化,再显示窗体。即应该是这样:

    Module Module1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            '声明变量
            Dim frm As Form1
            '实例化窗体
            frm = New Form1
            '显示窗体
            frm.ShowDialog()
        End Sub
    End Module
    

    二、窗体间互相传值

    分别在两个窗体上添加3个按钮和一个Label控件。如图:
    在这里插入图片描述
    在这里插入图片描述
    为按钮添加事件代码:

    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Form2.Show()
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Form2.Label1.Text = "Form2,你好!"
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Form2.Label1.Text = ""
        End Sub
    End Class
    
    Public Class Form2
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Form1.Label1.Text = "Form1,感谢你!"
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Form1.Label1.Text = ""
        End Sub
    End Class
    

    以上代码是按旧Visual Basic 6.0语言编写的,但并没有出现其他文章里所说不实例化就会报错,代码能够执行并很好完成窗体间相互传值的任务。

    后续:经多方阅读后了解到,上述是使用窗体的共享方法Show来显示窗体,用于与VB6兼容,但不推荐使用。即:

    Form1.Show()
    

    共享方法可以不用先实例化窗体就进行了显示,这样显示的是默认的窗体实例。在包含窗体的项目中的任何地方都可以使用这个默认窗体。默认的窗体实例只有一个,因此任何指向它的引用实际上使用的都是同一个底层窗体实例。

    三、测试实例化后再显示和传值

    模块代码修改为:

    Module Module1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            '声明变量
            Dim frm As Form1
            '实例化窗体
            frm = New Form1
            '显示窗体
            frm.ShowDialog()
        End Sub
    End Module
    

    窗体代码修改为:

    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim frm2 As Form2
            frm2 = New Form2
            frm2.Show()
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim frm2 As Form2
            frm2 = New Form2
            frm2.Label1.Text = "Form2,你好!"
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            Dim frm2 As Form2
            frm2 = New Form2
            frm2.Label1.Text = ""
        End Sub
    End Class
    

    测试一下项目,点击Button1可以正确显示窗体 Form2,可是Button2和Button3却无法向Form1传值,是不是也要加一句frm2.Show()?试试看!

        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim frm2 As Form2
            frm2 = New Form2
            frm2.Label1.Text = "Form2,你好!"
            frm2.Show()
        End Sub
    

    测试项目,可以传值了,只是并不是向原来的Form1传值,而程序反而又蹦出了一个Form1,再点一次按钮又蹦出一个Form1,再点再蹦……,如图:
    在这里插入图片描述
    原来窗体其实是一个类,一个类可以实例化成多个对象,我们两个按钮就生成了两个Form1窗体对象了,看来还是Visual Basic 6.0语言好理解。什么是类?笔者在这里暂不过多解释!
    怎么办?在网友uruseibest的博文里发现,可以这样处理:

    1、保持窗体引用的全局性

    在访问窗体之前,最好进行窗体实例化,如果在项目中有多处代码访问同一窗体,可以把它的同一实例指针传递给这些代码,即把窗体实例指针保存在全局变量中。
    模块代码再次修改:

    Module Module1
        '声明一个全局变量
        Public frm1 As Form1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            frm1 = New Form1
            frm1.ShowDialog()
        End Sub
    End Module
    

    窗体Form1代码修改为:

    Public Class Form1
        Private frm2 As Form2
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            '加载窗体时实例化
            frm2 = New Form2
        End Sub
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            frm2.Show()
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            frm2.Label1.Text = "Form2,你好!"
            frm2.Show()
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            frm2.Label1.Text = ""
            frm2.Show()
        End Sub
    End Class
    

    窗体Form2代码修改为:

    Public Class Form2
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            frm1.Label1.Text = "Form1,感谢你!"
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            frm1.Label1.Text = ""
        End Sub
    End Class
    

    OK,现在可以正确传值了,测试结果如图:
    在这里插入图片描述

    2、重写窗体构造函数

    什么是重写?就是不要原来的无参数构造函数了,改成自己写的带参数构造函数。
    回到Form2窗体的代码窗口,输入:Public Sub new,按回车,即可添加如下代码:

       Public Sub New()
    
            ' 此调用是设计器所必需的。
            InitializeComponent()
    
            ' 在 InitializeComponent() 调用之后添加任何初始化。
    
        End Sub
    

    这个是窗体默认的无参数构造函数,现在我们重写一个有参数的构造函数。如下代码:

        Private Frm1 As Form1
        Public Sub New(ByVal frm As Form1)
            MyBase.New()
           ' 此调用是设计器所必需的。
            InitializeComponent()
    
            ' 在 InitializeComponent() 调用之后添加任何初始化。
            Me.Frm1 = frm
        End Sub
    

    这里传入的参数是一个对象,即Form1窗体,当然你也可以把参数改成字符串等其他数据类型。
    现在,就可以通过重写的构造函数把Form1对象传入Form2中,在Form2中直接使用变量Frm1就是Form1窗体啦。
    然后到Form1代码窗口,修改实例化Form2的代码为:

    Frm2 = New Form2(Me)
    

    原来是不带参数的,因为上面已经修改了Form2的构造函数,所以此时实例化Form2时不再调用默认构造函数,而是需要我们指明参数再实例化。
    这里的Me指的就是Form1当前的实例,也就是把当前Form1的实例通过Form2的构造函数传递给Form2类。
    完整代码如下:
    模块代码:

    Module Module1
        '声明一个全局变量
        Public frm1 As Form1
        Public Sub Main()
            'IF语句,符合条件则显示窗体Form1,这里略过直接显示窗体
            frm1 = New Form1
            frm1.ShowDialog()
        End Sub
    End Module
    

    Form1代码:

    Public Class Form1
        Private frm2 As Form2
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            '加载窗体时实例化
            Frm2 = New Form2(Me)
        End Sub
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            frm2.Show()
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            frm2.Label1.Text = "Form2,你好!"
            frm2.Show()
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            frm2.Label1.Text = ""
            frm2.Show()
        End Sub
    End Class
    

    Form2代码:

    Public Class Form2
        Private Frm1 As Form1
        Public Sub New(ByVal frm As Form1)
            MyBase.New()
            ' 此调用是设计器所必需的。
            InitializeComponent()
    
            ' 在 InitializeComponent() 调用之后添加任何初始化。
            Me.Frm1 = frm
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Frm1.Label1.Text = "Form1,感谢你!"
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Frm1.Label1.Text = ""
        End Sub
    End Class
    

    经测试,正确实现相互传值。
    还有说使用委托机制,笔者没有测试,感兴趣的你也可以查阅相关博文了解了解。

    四、迷惑

    不用实例化就可以很方便的调用窗体和向窗体传值,为什么Visaul Basic .NET要如此多事,非要整个实例化才显得更高大上吗?就因为是面向对象编程?那为什么还可以象旧Visual Basic 6.0 那样不实例化调用窗体呢?

    更多阅读:再谈WinForm窗体间相互传值(单值、多值)——属性、委托和事件

    本文参考了以下博文:
    1、vb.net 教程 3-2 窗体编程之窗体 5
    2、vb.net 教程 3-2 窗体编程之窗体 4
    3、如何在窗体之间通讯的几种方法 ? VB.NET方案
    4、vb.net的多窗体操作

    展开全文
  • 内容索引:VB源码,系统相关,窗体嵌套 VB将外部程序加载到自己程序窗体中显示,虽然这个示例很小,但可能很实用这个功能,在本例中,将计算器、记事本、翻牌游戏显示在自己所指定的窗体中,而且不会超出窗体范围,就...
  • 这几天碰到了关于热键来控制窗体显示和隐藏问题,自己找了点资料并做下修改,基本上功能可以实现。希望能给需要的朋友一点帮助
  • 内容索引:VB源码,界面编程,窗体,工具栏 一个实用的窗体程序,VB使用主窗体的按钮控制副窗体自由打开与隐藏,类似工具栏样式的窗口,附在主窗体旁边,可以显示、隐藏,运行截图看出是两个窗体,实际在制作过程中和一...
  • VB可以调用DLL控件窗体为MDI子窗体
  • VB窗体显示柱状图,调用数据库表单数据,在窗体显示柱状图
  • VB 6.0灵活设置窗体加载的位置和窗体大小
  • VB6 在窗体菜单加入Radio单选按钮和Check复选按钮,平时我们已经见到过了,虽然比较小的应用,不过挺实用,用了会增加软件体验,为用户操作提供方便,Windows系统里就有,好像见惯不惯了。
  • 摘要:VB源码,界面编程,窗体菜单 窗体菜单制作实例:基于VB的自动隐藏、自动显示窗体菜单栏,如上图所示,当你把鼠标放在“File”菜单上时候,菜单才显示出来,平时它是不显示的,窗体上什么也没,鼠标移过去了再...
  • 内容索引:VB源码,界面编程,半透明窗体,淡入淡出 VB半透明窗体并且淡入淡出显示效果,VB编写的窗体小特效,让窗体半透明显示并且淡入淡出显示,这个功能很有用吧?为你的程序窗口增添几分活力,相信你会喜欢的。
  • 这是一个相对简单的VB制作透明 窗体方法,看上去这个窗体无边框、无标题栏,也没有最小最大化及关闭按钮,完全显示了一个图片的效果,其实本代码是一个透明窗体的实现实例,特此为大家分享代码如下:  Private ...
  • 一个VB窗体 TAB控件 实现标签切换,来自国外的VB达人所写,选项卡中嵌套有TAB,点击后可切换窗体中的对应内容,有横向的和纵向的选项卡例子,可根据自己的需要选择使用。本代码参考价值大,希望关注。
  • VB.NET窗体方法示例

    选择的4种方法分析

    • Show:
      用来显示窗体。如果窗体已经加载到内存,就直接显示;如果没有,那么就先加载再显示。
      如果一个窗体被叠放在其它窗体之下,本方法可以将该窗体移到屏幕的最上层。
      调用此方法与设置Visiable属性为True等效。
    • Hide:
      与Show相对,用它来使得窗体在屏幕上不可见,但该窗体还在内存里。
      如果说一个窗体需要被多次调用,就可以使用此方法,在暂时不需要其时隐藏。这样做可以提高效率但是会占用内存空间。
      调用此方法与设置Visiable属性为False等效。
    • Close:
      用来关闭窗体。
      当窗体被关闭后,将不再占用内存。
    • SetBounds:
      用来指定窗体的位置和大小。
      包含4个参数——X坐标、Y坐标、窗体的宽度以及窗体的高度。

    核心代码

    Public Class Form1
        Dim frm2 As New Form2
    
        Private Sub btnClose_Click(sender 
    展开全文
  • 摘要:VB源码,界面编程,子窗口,父窗口 禁止子窗口从父窗口中移出的VB源代码,本源代码是从皮肤编辑器VB版的源代码提取并修改的。如实例运行截图所示,当点击两个按钮时,会弹出一个子窗体,这个窗体是逃不出最外层...
  • MDI窗体可以避免打开窗体的时候被无数个子窗体困扰,我将为大家一一的介绍一下vb.netMDI窗体的操作方法 一、如何vb.net教程 创建MDI窗体? 1、创建mdi主窗体 新建建立一个默认空白的Windows应用c#教程程序,在Form...

    MDI窗体可以避免打开窗体的时候被无数个子窗体困扰,我将为大家一一的介绍一下vb.net中MDI窗体的操作方法

    一、如何vb.net教程
    创建MDI窗体?
    1、创建mdi主窗体
    新建建立一个默认空白的Windows应用c#教程程序,在Form1窗体的属性窗口中找到IsMDIContainer 属性,设置为 True
    在这里插入图片描述

    2、创建MDI子窗体
    在vb.net中,mdi子窗体就是普通的窗体,无需更改其属性。所有直接新建一个Form2

    3、添加代码

    Dim frm2 As New Form2
    Form2.Show()
    

    此时你只需要简单的实例化一下显示出来就python基础教程可以了,非常简单吧。

    二、显示MDI窗口列表
    用过带有子窗体的程序的朋友一定知道,很多程序都带显示它它本身打开的子窗体列表的功能,那么它是怎么实现的呢
    在这里插入图片描述

    现在在父窗体中修改你的MenuScript1控件的MdiWinddowListItem属性为你要设置的菜单即可。

    在这里插入图片描述

    三、排列子窗体
    你只需要在你的单击操作中填入以下代码即可

     Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
            Me.LayoutMdi(MdiLayout.TileHorizontal) '水平平铺
        End Sub
     
        Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click
            Me.LayoutMdi(MdiLayout.TileVertical) '垂直平铺
        End Sub
     
        Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
            Me.LayoutMdi(MdiLayout.Cascade) '层叠
        End Sub
    

    看一下效果图

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    四、VB.NET 如何防止重复打开MDI子窗体?

    Private Sub 窗体1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 窗体1ToolStripMenuItem.Click
            Dim frm2 As New Form2
            CheckForm(frm2, "Form2")
            frm2.WindowState = FormWindowState.Normal
            ShowForm(Form2)
        End Sub
     
        '*****************************************************************************
        '*过程名称:CheckForm
        '*参数说明:MDIChildForm——需检测的窗体;MDIChildFormName ——检测窗体的名字
        '*功能说明:首先检测是否有MDI子窗体,如果没有,则创该MDI子窗体的窗体实例
        '*                    如果有,则检测当中有没有其窗体实例,有则激活;没有则创建其窗体实例
        '*****************************************************************************
        Private Sub CheckForm(ByVal MDIChildForm As Form, ByVal MDIChildFormName As String)
            If Me.MdiChildren.Length < 1 Then
                '如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
                ShowForm(MDIChildForm)
                Exit Sub
            Else
                Dim x As Integer
                Dim frmyn As Boolean
                For x = 0 To (Me.MdiChildren.Length) - 1
                    Dim tempChild As Form = CType(Me.MdiChildren(x), Form)
                    If tempChild.Name = MDIChildFormName Then
                        frmyn = True
                        '检测到有该MDI子窗体,设为TRUE 并退出循环
                        Exit For
                    Else
                        frmyn = False
                    End If
                Next
                If frmyn = False Then
                    '在打开的窗体中没检测到则新建
                    ShowForm(MDIChildForm)
                Else
                    '在打开的窗体中检测到则激活
                    Dim MDIChildFrm As Form = CType(Me.MdiChildren(x), Form)
                    MDIChildFrm.Activate()  '使子窗体激活
                    MDIChildFrm.WindowState = FormWindowState.Normal
                End If
            End If
        End Sub
     
        '**************************************************
        '*过程名称:ShowForm
        '*参数说明:MDIChildForm ——需创建实例的窗体
        '*功能说明:创建窗体实例
        '**************************************************
        Private Sub ShowForm(ByVal MDIChildForm As Form)
            Dim MDIChildFrm As Form = MDIChildForm
            MDIChildFrm.MdiParent = Me ' 定义MDI子窗体
            MDIChildFrm.Show() '打开窗体
        End Sub
     
     
        Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim frm2 As New Form2
            CheckForm(frm2, "Form2")
            frm2.WindowState = FormWindowState.Maximized
        End Sub
    End Class
    

    好了,关于MDI子窗体的先介绍到这,有什么不足或者不正确的地方,提出来一起交流。

    展开全文
  • 简单的VB登录窗体

    2021-05-18 06:24:06
    摘要:VB源码,界面编程,登录窗体 向VB6初学者共享一个简单的VB登录窗体制作实例,在编写小型信息系统的时候,这是个必不可少的小模块哦,本源码演示了用户点击“登录”窗口到判断登录信息、最后给出登录提示的全部...
  • vb 时间显示器 源代码 简单程序窗口
  • vb禁用窗体最大化、最小化和关闭快捷菜单,禁用最大化、最小化不可用,重点实现了禁止关闭窗口的功能,禁止后窗口上的关闭按钮变成灰色不可点击了,在实现方面,核心代码如下:  Private Sub Form_Load()  ...
  • VB中实现窗体自动隐藏 (转)OICQ聊天时的窗体自动隐藏功能,用vc 或CBC都可以很简单地实现,前几天看到有一则用CBC实现的例子,便想用VB实现一下,可惜当窗体上放满控件时,FORM的MOUSEMOVE事件不能很好地触发,...
    VB中实现窗体自动隐藏 (转)

    OICQ聊天时的窗体自动隐藏功能,用vc 或CBC都可以很简单地实现,前几天看到有一则用CBC实现的例子,便想用VB实现一下,可惜当窗体上放满控件时,FORM的MOUSEMOVE事件不能很好地触发,所以只好用以下的笨办法,现把代码贴上,窗体上需放一TIMER控件,Interval属性为200。大伙如有好的意见,不妨贴出来,让我学习学习。

    Option Explicit

    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTapi) As Long
    Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

    Private Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
    Private Type POINTAPI
      X As Long
      Y As Long
    End Type

    Private Const HWND_TOPMOST = -1
    Private Const SWP_NOSIZE = &H1
    Private Const SWP_NOMOVE = &H2
    Private Const HWND_TOP = 0
    Private Const SWP_NOACTIVATE = &H10
    Private Const SWP_SHOWWINDOW = &H40


    Private Sub Form_Load()
    '窗体放在最前面
      SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    End Sub

    Private Sub Timer1_Timer()
      Dim p As POINTAPI
      Dim f As RECT
      GetCursorPos p  '得到MOUSE位置
      GetWindowRect Me.hwnd, f  '得到窗体的位置
      If Me.windowstate <> 1 Then
      If p.X > f.Left And p.X < f.Right And p.Y > f.Top And p.Y < f.Bottom Then
      'MOUSE 在窗体上
      If Me.Top < 0 Then
      Me.Top = -10
      Me.Show
      ElseIf Me.Left < 0 Then
      Me.Left = -10
      Me.Show
      ElseIf Me.Left + Me.Width >= Screen.Width Then
      Me.Left = Screen.Width - Me.Width + 10
      Me.Show
      End If
     
      Else
      If f.Top <= 4 Then
      Me.Top = 40 - Me.Height
      ElseIf f.Left <= 4 Then
      Me.Left = 40 - Me.Width
      ElseIf Me.Left + Me.Width >= Screen.Width - 4 Then
      Me.Left = Screen.Width - 40
      End If
      End If
      End If

    End Sub


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10797429/viewspace-101579/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/10797429/viewspace-101579/

    展开全文
  • vb.net 将窗口显示在panel窗口,并且可以多个窗口切换。环境VS2008

空空如也

空空如也

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

vb中显示窗体的方法