十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
选择其中一个控件,右键“置于底层”、“置于顶层”即可,望采纳。
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的绥德网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
如图所示黑色矩形为窗体边线;
L1是控件1的左边离开窗体左边界的距离;
T1是控件1的上边离开窗体上边界的距离;
W1是控件1的宽度;
H1是控件1的高度;
L2是控件2的左边离开窗体左边界的距离;
T2是控件2的上边离开窗体上边界的距离;
W2是控件2的宽度;
H2是控件2的高度;
如果把边界相切也算作重叠,根据数学知识可以找出不重叠的数学关系;
一,水平情况不重叠;
1,控件1在控件2的左边
有:L1 + W1 L2
2,控件2在控件1的左边
有:L2 + W2 L1
二,垂直情况不重叠;
3,控件1在控件2的上边
有:T1 + H1 T2
4,控件2在控件1的上边
有:T2 + H2 T1
以上四种情况只要有一个成立,两个控件就不重叠;反之就重叠,代码的逻辑关系如下;
If (L1 + W1 L2) Or (L2 + W2 L1) Or (T1 + H1 T2) Or (T2 + H2 T1) Then
MsgBox("不重叠!")
Else
MsgBox("重叠!")
End If
参考:
把执行SQL语句后得到的记录集逐条(含字段名)显示在LISTVIEW控件中
'----------------------------------------------------------------
Public Sub ListUpdate(ByRef rs As Recordset, ByRef lv As ListView)
Dim head As ColumnHeader, Item As ListItem
Dim i As Integer, j As Integer
Dim lvWidth As Integer
lvWidth = lv.Width
'初始化LISTVIEW的某些属性
lv.View = lvwReport
lv.GridLines = True
lv.FullRowSelect = True
lv.ListItems.Clear
lv.ColumnHeaders.Clear
For i = 0 To rs.Fields.Count - 1
Set head = lv.ColumnHeaders.Add
head.Text = rs.Fields(i).Name
head.Width = lvWidth / rs.Fields.Count
Next
For j = 1 To PERPAGE
If rs.EOF Then Exit For
Set Item = lv.ListItems.Add
Item.Text = "" rs.Fields(0).Value
For i = 1 To rs.Fields.Count - 1
Item.SubItems(i) = "" rs.Fields(i).Value
Next
rs.MoveNext
Next
End Sub
' 打印
Public Sub PrintRecordset(ByRef recRecordset As Recordset, ByVal strType As String)
Dim LeftMargin As Integer
Dim HeadTopPosition As Integer
Dim FieldNum As Integer
Dim PageCounter As Integer
Dim MyRecordset As ADODB.Recordset
Const FooterTopPosition = 24
Set MyRecordset = recRecordset
PageCounter = 1
' 设 置Printer 对 象 坐 标 的 度 量 单 位 为 厘 米
Printer.ScaleMode = vbCentimeters
LeftMargin = 1.5
HeadTopPosition = 2
' 定 义 打 印 页 左 上 角 的X 坐 标 和Y 坐 标, 通 过 改 变ScaleLeft 和ScaleTop 的 值, 可 改 变 打 印 页 的 左 边 距 和 上 边 距
Printer.ScaleLeft = -LeftMargin
Printer.ScaleTop = -HeadTopPosition
Printer.Font.Name = "Times New Roman"
Printer.Font.Size = 12
Printer.Print "音像店顾客管理系统"
Printer.Print strType
Printer.Print ""
If MyRecordset.EOF And MyRecordset.BOF Then
MsgBox "No Record At Presend!", vbCritical And vbOKOnly, "Print Error"
Exit Sub
End If
MyRecordset.MoveFirst
Do Until Printer.CurrentY FooterTopPosition
'Print the fields of the recordset in sequence
For FieldNum = 0 To MyRecordset.Fields.Count - 1
Printer.Print MyRecordset.Fields(FieldNum).Name _
": " _
MyRecordset.Fields(FieldNum).Value
If Printer.CurrentY FooterTopPosition Then
Printer.CurrentX = 8
Printer.Print "Page: " PageCounter
' 创 建 多 页 文 档
Printer.NewPage
PageCounter = PageCounter + 1
End If
Next FieldNum
MyRecordset.MoveNext
If MyRecordset.EOF Then Exit Do
' 在 记 录 之 间 空 一 行
Printer.Print ""
Loop
'Print the Page number as a footer
Printer.CurrentX = 8
Printer.CurrentY = FooterTopPosition
Printer.Print "Page: " PageCounter
' 将 输 出 送 到 打 印 机
Printer.EndDoc
End Sub
Form1的不透明度改为5%以内就可以点击到form2的控件
对应form2按钮的位置在form1画一个picturebox,背景色为黑色,窗体的透明色改为与背景色相同的颜色
如果是在设计模式下,在控件上单击右键,有“置于顶层”“置于底层”的选项。
如果对于已经生成好的程序,那么已经在设计模式下添加到窗体上的控件是不能够调整显示顺序的,倒是通过 Me.Controls.Add(Me.Controls) 这种方式动态添加的控件可以调整顺序,哪个被先 Add 了,哪个就显示在顶端。
如果对这个比较好奇的话,可以到 Form1.Designer.vb 下找到 InitializeComponent() 这一段,看里面不同的 Me.Controls.Add(Me.Controls) 的顺序会导致窗体呈现出怎样的结果。