vb窗体位置的控制

有个问题请教各位大侠:我在一个窗体里放了一个表格控件,然后单击这个表格控件的时候弹出另外一个窗体,想让第二个窗体的位置在单元格的下面。如何实现呢?... 有个问题请教各位大侠:
我在一个窗体里放了一个表格控件,然后单击这个表格控件的时候弹出另外一个窗体,想让第二个窗体的位置在单元格的下面。如何实现呢?
展开
 我来答
以画屏屏8748
2008-06-16 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3303万
展开全部
VB窗体的位置与大小控制技巧

我们知道,任何一个系统往往是由窗体所构成的,窗体在系统运行期即是通常所说的窗口,窗口在系统运行时在屏幕中处于什么位置?窗口的大小在系统运行期如何控制?我们在工程中对窗体加工制作时往往会忽略这一点。我们首先应该知道一个窗体在工程的设计期可能存在哪些可能的位置,系统开发期为窗体设计的位置,也就是窗体在运行期可能在屏幕中出现或停留的位置。

作为窗体的位置,它与窗体的背景色和前景色的配置一样,也可以采用属性配置方法与程序控制方法来进行控制。其确定位置的两种配置方案如下:

①居中+宽度+高度

如果选择窗体始终位于屏幕中心,则窗体的大小由宽度和高度所确定了。此时的情况如图1.12所示。

图1.12 窗体居中+高度+宽度

其位置可由三个主要属性来确定: StartUpPosition:“启动位置”属性 ;Height: 高度参数值;Width: 宽度参数值;
其启动位置属性包括如图1.13所示的四种情形。

图1.13窗体的位置属性设置

其中,设置“手动”属性时,窗体在运行启动时首先出现在屏幕的左上角,然后用户可以通过鼠标进行拖动,这就是所谓的“手动”位置;
当设置启动位置为“所有者中心”时,如果它是窗体为另外一个窗体的所有者(子窗体)中,它在启动后将出现在它的宿主窗体的中心;
当设置它的启动位置属性为“屏幕中心”时,它在启动运行时就出现在计算屏幕的中央位置;
当设置它的启动位置为“窗口缺省”时,它在启动时的位置就是它在设计时放置在屏幕中的位置。

②左边距+顶边距+高度+宽度

如果用户不将窗体安排在屏幕居中的位置,则用户可以通过左边距+项边距+高度+宽度来控制窗体在屏幕中的位置。左边距+顶边距控制窗体在屏幕中的坐标位置,宽度和高度则确定窗体的大小。
用户可以在属性框中输入如下四个参数即可:
Left:左边距参数值;Top:顶边距参数值;Height: 高度参数值;Width: 宽度参数值;

下面,我们通过两个具体的实例来说明窗体在屏幕中的位置的控制现配置方法。

例1.5 在例1.1工程中选择窗体Form1,使其在运行期停留在屏幕中心,而且宽度为:486;高度为:252;该实例通过如下过程来实现:
1.启动Visual Basic 6.0开发平台(如已经启动可免去此步骤),打开例1.1创建的工程;
2.选择窗体Form1,然后设置它的启动位置属性StartUpPosition为“2-屏幕中心”;
3.设置它的Width属性值为:4860;
4.设置它的Height属性值为:2520;
4.运行窗体,查看窗体运行期的实际位置和大小与设计期的位置和大小是否一致,这是肯定的。

如前所述,窗体的位置除用属性框中的属性设置之外,同样可以通过编程的方法来加以控制,以下我们通过编制一个程序来控制窗体在屏幕中的位置。

例1.6在例1.1创建的工程中,并通过编程的方法,使窗体Form1在运行期位于屏幕中心,而且宽度为:4860;高度为:2520;该实例可通过如下过程来实现:

1.启动Visual Basic 6.0开发平台(如已经启动可免去此步骤),打开例1.1创建的工程;
2.选择窗体Form1并双击该窗体,出现窗体的调事件的过程代码体;
3.在窗体调用的过程代码体中编制如下过程代码:

Private Sub Form_Load()
Form1.Width = 4860
Form1.Height = 2520
End Sub

4.设置窗体Form1的SartUpPosition属性为2-屏幕中心,这样运行窗体可以发现,屏幕的大小与例1.6中通过属性设置的大小是一致的。
但注意到:在窗体的调用过程代码中,我们并未设置窗体的启动位置的过程,这个函数在程序中被禁用,即我们不能在窗体的调用过程代码中使用

Form1. SartUpPosition = 2

来确定窗体的启动位置,这个函数被Visual Basic 6.0所禁用,原因未知。但在Visual Basic 6.0的基本语法中这一语句又是合法的。其语法给出如下:

object.StartUpPosition = position

其语句意义及其使用如下表1-2和表1-3所示;

表1-2 StartUpPosition 表达式意义
涉及的要素
Object 对象表达式,其用于Form、Forms、MDIForm。
StartUpPosition 启动位置属性
Position 位置参数

位置参数Position的设置值如表1-3所示

表1-3 Position参数可设定的值及其意义
位置 值 意义
手动 0 没有指定初始设置
所有者中心 1 所属宿主的中心
屏幕中心 2 屏幕中央
默认位置 3 窗体在设计时的位置
逮依波权友
2019-03-21 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:957万
展开全部
先判断好你的form运行位置和宽高,程序运行时,用
Screen.Width
/
Screen.TwipsPerPixelX
Screen.Height
/
Screen.TwipsPerPixelY
得到水平和垂直分辨率,然后根据不同的情况来设置form2的top和left属性,
设置好之后在form2.show就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尘入蜓孟影食1038
2008-06-16 · TA获得超过3512个赞
知道大有可为答主
回答量:2307
采纳率:87%
帮助的人:1336万
展开全部
这是要使用“公共变量”,设置工程级别的变量:xx、yy(两个窗体里不能再声明同名变量)
在“模块”里声明:
public xx as single
public yy as single

在原窗体里声明窗体级变量x1、y1
在表格单击的鼠标移动事件里
x1=x
y1=y
表格的单击事件里(注意,这里biaoge要换成你实际的控件名称)
xx=left+biaoge.left+x
yy=top+biaoge.top+y

再在新窗体装在事件里
me.move xx,yy

就可以了!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式