VB.NET设置控件和窗体的显示级别
前言:在用VB.NET开发射频检测系统ADS时,当激活已存在的目标MDI子窗体时,被其他子窗体遮住了,导致目标MDI子窗体不能显示。
这个问题怎么解决呢?网上看到一篇帖子VB.NET设置控件和窗体的显示级别,总结得挺不错的。现转载过来,以备后用。
解决方案:
1)使用Controls属性将子窗体作为子控件显示到Panel等的所有子控件最前方
有些控件可以作为容器使用如类似Panel、PictureBox等的控件,在向容器控件中加入其它控件时,这些子控件组合到一起成为一个控件集合,在这个控件集合中每个控件都有各自显示的顺序。下面我们拿Panel来举例(其它容器控件的方法相同)。
为了显示到Panel前我们可以使用Controls属性,将子窗体作为Panel的子控件显示。具体实现代码如下:
Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.TopLevel = False
frmMain.Panel1.Controls.Add(Me)
frmMain.Panel1.Controls.SetChildIndex(Me, )
frmMain.Show()
End Sub
上面的Add方法将frmQryBalance窗体作为子控件显示到了Panel中,SetChildIndex方法是设置子窗体的显示顺序,0是将该窗体显示到所有子控件最前方。
2)使用Parent属性将子窗体作为子控件显示到Panel等的所有子控件最前方
代码如下:
Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.MdiParent = frmMain
Me.Parent = frmMain.Panel1
Me.BringToFront()
Me.Show()
End Sub
BringToFront是将控件移到 Z 顺序的前面。BringToFront 不会使一个控件成为顶级控件。
与BringToFront方法相反的一个方法名为SendToBack方法。将控件移到 Z 顺序的后面。如果控件为顶级控件,除非该控件为活动状态,否则此方法将无法正确运行。 顶级控件是类似 Form 的控件,它不是另一个控件的子控件。 活动控件是具有输入焦点的可见控件。 若要对非活动的顶级控件使用 SendToBack 方法,首先要对该控件调用 BringToFront 方法。
3)调用API方法SetParent
在Visual Basic .Net中使用“平台调用”服务,申明Windows API函数主要有二种具体的实现方法:①使用DllImport特征类来申明Windows API函数。②使用“Declare”语句来申明Windows API函数。这两种方法虽有异曲同工之效,但在繁简上却有很大差异,第一种方法申明过程比较复杂,很容易在申明Windows API函数时出错,所以并不提倡。而第二种方法相对简单,并且又保留了以前Visual Basic中的很多语法,所以大都使用这种方法来申明Windows API函数。
具体实现方法如下:
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub frmQryBalance_Load(sender As Object, e As EventArgs) Handles MyBase.Load
setparent me frmMain.Panel1
End Sub
参考链接:http://blog.csdn.net/zhang_xinxiu/article/details/8888510
VB.NET设置控件和窗体的显示级别的更多相关文章
- js设置控件的隐藏与显示的两种方法
js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了,下面有个示例,需要的朋友可以参考下用JavaScript隐藏控件的方法有两种,分别是通过设置控件的sty ...
- Python3 tkinter基础 Label pack 设置控件在窗体中的位置
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 基于VB中WINSOCK控件的网上象棋系统的实现
本文发表在<微型机与应用>杂志2001年第3期. 基于VB中WINSOCK控件的网上象棋系统的实现 马根峰1 , 孙艳2 , 王平1 (1.重庆邮电学院自动化学院,重庆,40006 ...
- Winform 窗体控件随窗体自动(等比例)调整大小
新建窗体程序了,添加窗体事件Load(加载窗体时).Resize(调整控件大小时).自定义方法setTag(获取控件的width.height.left.top.字体大小等信息的值).setContr ...
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)
在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性.Anchor属性定义控件的定位点位置.当控件锚定到某个 ...
- c# 设置控件的前景颜色和背景颜色
AutoSize:设置为false取消自动计算尺寸功能,控件的大小则按照设定的Size来呈现,设置为true自动计算大小 TextAlign:设置对齐方式 // // 摘要: // 用默认的所有者运行 ...
- winform groupbox控件放到窗体中间位置
1. 在Form中放一个控件,让其在启动时始终居中 int gLeft = this.Width / 2 - groupControl1.Width / 2; int gTop = this.Heig ...
- WPF中通过代码设置控件的坐标
用WPF做贪吃蛇小游戏时,发现了一个问题: 贪吃蛇的移动,我是通过不断刷新Rectangle来实现(贪吃蛇的身体由一组Rectangle组成),因此需要不断调整Rectangle的坐标,但是WPF中没 ...
- Android线程中设置控件
在Android中经常出现多线程中设置控件的值报错的情况,今天教大家封装一个简单的类避免这样的问题,同样也调用实现也非常的方便. 自定义类: /** * Created by wade on 2016 ...
随机推荐
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper
好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...
- SQL Server 2016白皮书
随着SQL Server 2016正式版发布日临近,相关主要特性通过以下预览学习: Introducing Microsoft SQL Server 2016 e-bookSQL Server 201 ...
- RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密
最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...
- ES6之let命令详解
let与块级作用域 { var foo='foo'; let bar='bar'; } console.log(foo,'var'); //foo varconsole.log(bar ,'bar') ...
- crontab介绍
1.Cron的启动与关闭 由于Cron是Linux的内置服务,可以用以下的方法启动.关闭这个服务: /sbin/service crond start //启动服务/sbin/se ...
- 【一起学OpenFoam】01 OpenFoam的优势
CFD技术发展到今天,已经超过了大半个世纪了,已经涌现出非常多的CFD软件可供人们使用.通用商业CFD软件譬如Fluent.CFX.Star CCM+等在工业上得到了广泛的应用,另外一些专用的软件(如 ...
- 递归实现n(经典的8皇后问题)皇后的问题
问题描述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- centos6.3与jexus5.4.4配置支持php(wordpress)
centos6.3与jexus5.4.4配置支持php,并搭建自己的wordpress博客,供那些在Linux平台下想让 php和asp.net一起跑的初学者参考. 1.搭建webserver 首先准 ...