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 ...
随机推荐
- Jquery的事件操作和文档操作
对于熟悉前端开发的小伙伴,相信对于Jquery一定不陌生,相对于JavaScript的繁琐,Jquery更加的简洁,当然简洁不意味着简单,我们可以使用Jquery完成我们想要实现全部功能,这里为小白们 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航
ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...
- .NET跨平台之运行与Linux上的Jexus服务器
谈及.NET跨平台,已经不是什么稀奇的事儿.今天我们就以Jexus服务器的部署为例.简单示范下.在这里,我用VMWare虚拟机来搭建Linux运行环境. Linux,我们选择CentOS7.大家可以前 ...
- 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...
- Python(九)Tornado web 框架
一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- JAVA程序员常用软件整理下载
********为了大家学习方便,特意整理软件下载如下:*************Java类软件:-------------------------------JDK7.0:http://pan.ba ...
- PHP设计模式(七)适配器模式(Adapter For PHP)
适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 如下图(借图): // 设置书的接口 // 书接口 interface BookI ...
- 图解CSS3制作圆环形进度条的实例教程
圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能 ...
- Android 算法 关于递归和二分法的小算法
// 1. 实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1. package demo; public class Mytest { public st ...
- ubuntu14.04下安装node.js
在网上查了下,起初是下载了一个node-v0.12.7-linux-x64.tar.gz,解压在/home/node路径下,然后在/etc/profile中添加如下命令: export NODE_HO ...