标题:VB.NET Panel1中加载的窗体如何能随Panel1尺寸的变化而变化?
只看楼主
ZMGTCDY
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:51
专家分:115
注 册:2012-10-5
结帖率:50%
已结贴  问题点数:30 回复次数:6 
VB.NET Panel1中加载的窗体如何能随Panel1尺寸的变化而变化?
在Form1窗体上的Panel1控件中加载一个窗体RJForm
        Dim MyRj As New RJForm()
        MyRj.FormBorderStyle = FormBorderStyle.None
        MyRj.TopLevel = False
        Panel1.Controls.Add(MyRj)
        MyRj.Show()
        如图:
       [
可是加载后的窗体Form1无论是放大或还原及手动拉伸窗体时RJForm都不动。请各位大师们指点!!
这个问题看似简单,可是我弄了好几天,在网上也查了相关内容也没找到答案。还望各位高手费心!!
 Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        Panel1.Top = 10
        Panel1.Left = 300
        Panel1.Width = Me.Width - 445
        Panel1.Height = Me.Height - 87
    End Sub
当Panel1边框类型设置为None时,移动窗体时Panel1可以同时移动,而其中的RJForm却不行。

这个问题难吗?还是太简单不懈回答呢。高手都去哪儿了。

[ 本帖最后由 ZMGTCDY 于 2015-4-8 10:16 编辑 ]
搜索更多相关主题的帖子: Object False 如何 网上 
2015-04-06 16:49
ZMGTCDY
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:51
专家分:115
注 册:2012-10-5
得分:0 
大师们都去哪儿了?
2015-04-08 16:32
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:30 
在Panel1调整位置和大小的时候,要调整New出来的RJForm位置和大小。下面是个例子:

默认从Form1起动, Form1上应当有个Panel,对吧
程序代码:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim MyRj As New RJForm()
        MyRj.FormBorderStyle = FormBorderStyle.None
        MyRj.TopLevel = False
        Panel1.Controls.Add(MyRj)
        MyRj.Show()
    End Sub

    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
        Panel1.Top = 10
        Panel1.Left = 300
        Panel1.Width = Me.Width - 445
        Panel1.Height = Me.Height - 87
    End Sub

    Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
        Panel1_Resize(sender, e)
    End Sub

    Private Sub Panel1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.Resize
        For Each ctl As Control In Panel1.Controls
            If TypeOf ctl Is Form Then
                ctl.SetBounds(0, 0, Panel1.Width, Panel1.Height)
            End If
        Next
    End Sub
End Class

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2015-04-08 17:59
ZMGTCDY
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:51
专家分:115
注 册:2012-10-5
得分:0 
回复 3楼 不说也罢
其实我一直在等待着你的回答,看了你的回复我很兴奋!感觉很靠谱。不过我反复验证也没有什么结果。等你的时间的时候一定帮我验证一下,看是否能够实现我想要的功能。多谢多谢!!
2015-04-08 20:30
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
你应当新建一个项目,运行上面的例子,看看是否符合你的要求。
希望例子中Panel对象的两个事件(Panel1_Paint,Panel1_Resize)能给你启发。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2015-04-09 08:21
ZMGTCDY
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:51
专家分:115
注 册:2012-10-5
得分:0 
回复 5楼 不说也罢
虽然问题没有解决,但从中学到了一些新知识,还是要感谢你!如果有别的解决方法的话一定告诉我。祝你好运!!
2015-04-10 09:54
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:0 
不客气。我想你遇到的问题与贴子标题是不符的。Panel1中加载的窗体如何能随Panel1尺寸的变化而变化是很简单的,源码也贴了出来。怀疑是不是楼主窗体里控件的布局没达到楼主的意愿。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2015-04-10 12:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-443621-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.102661 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved