栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.NET窗口之间的置底置顶显示

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.NET窗口之间的置底置顶显示

.NET窗口之间的置底置顶显示

本文的主要内容:

1、窗口之间的显示优先级

简述:在一个较为复杂的系统中,往往存在多个窗口,为了使用方便,往往需要设置窗口之间的显示优先级顺序,通过查找资料,本文找到了以下几种可行的方法。

内容一:窗口之间的显示优先级

说明:如何在所有窗口中将一个窗口置顶或者置底显示,通常情况下,鼠标点击的窗口会在最前面显示,从而覆盖某些我们需要显示的其他窗口上的内容,如何避免这种情况?

方法一:利用窗口的topmost属性
窗口有一个重要的topmost属性,将该属性值设置为true,可将窗口直接置顶显示。

方法二:利用API函数
利用一个API函数,setWindowPos,本文主要参考以下文献:

让窗口始终在最前面显示 VB

对上述文档做一个解释说明,这份文献比较完整的对这个进行了说明,这里就不在赘述,不难发现,这篇文档主要是应对vb语言,这与VB.NET还是有一些区别,如果完全引用文章中的例子,则会出错,但是方法和属性是对的。本文贴出参考文章中的关键程序,再对它进行相应的修改。

修改前:
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 Const HWND_TOPMOST& = -1 ’ 将窗口置于列表顶部,并位于任何最顶部窗口的前面
Private Const SWP_NOSIZE& = &H1 ’ 保持窗口大小
Private Const SWP_NOMOVE& = &H2 ’ 保持窗口位置
Private Sub Form_Load()
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE '将窗口设为总在最前
End Sub

修改后:

    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Integer, ByValhWndInsertAfter As Integer,
                                                        ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer,
                                                        ByVal cy As Integer, ByVal wFlags As Integer) As Integer

    Private Const HWND_TOPMOST& = -1 ' 将窗口置于列表顶部,并位于任何最顶部窗口的前面
    Private Const SWP_NOSIZE& = &H1 ' 保持窗口大小
    Private Const SWP_NOMOVE& = &H2 ' 保持窗口位置
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        SetWindowPos(Me.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) '将窗口设为总在最前
    End Sub

注:此方法的窗口置顶显示可能运行时看不出效果,但编译成.exe之后就可以了

方法三:form2.showdailog()语句
调用form2窗口时,用form2.showdailog()语句,而不用form2.show()语句,这样可以将窗口form2置顶显示,但有一个弊端,再点击其他窗口时,form2窗口虽然不会被覆盖,但是form2窗口的显示阻止了其他窗口上事件的响应,除非form2窗口再次关闭,其他窗口上的事件才能响应。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号