| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2828 人关注过本帖
标题:《奥运邮集》软件的窗体居中问题——“抛砖引玉篇”(之二)问题解决了
取消只看楼主 加入收藏
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
结帖率:94.12%
收藏
 问题点数:0 回复次数:8 
《奥运邮集》软件的窗体居中问题——“抛砖引玉篇”(之二)问题解决了
这是偶二个月前提出的问题,如今在编写“邮集教材”时,再次顶上来,希望能有高手来相助。
问题也很简单:就是“奥运邮集”软件的页面,如何在不同分辨率的屏幕都处于“居中”的位置。问题就这么简单!
二个月前的原帖如下:(在5楼和11楼偶还提供了软件的源码)
在窗体中采用了frame控件,但软件启动后,在窗体中的frame总是偏向窗体的左边,
请问:如何才能让其总是自动处于居中位置,而不偏向一边?
在frame的属性中,可以设置该控件与窗体左端的距离,但就没有居中的设置啊.

[[it] 本帖最后由 jrs123 于 2008-4-19 11:39 编辑 [/it]]
搜索更多相关主题的帖子: 奥运邮集 问题解决 窗体 软件 抛砖引玉 
2008-02-06 13:37
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
谢谢楼上朋友提示,只是本人软件上要用-2才能居中,不知何故?,如:
frame.left=(form.width-frame.width)/-2
2008-02-08 13:39
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
问题:如果用Frame1.Left = (Me.ScaleWidth - Frame1.Width) / -2.5
居中了,但屏幕为1024×768或800×600分辨率时候,又不居中了,左边会空出一条宽边(屏幕分辨率在1280×1024调试正常)
cde.rar (22.57 KB)
2008-02-10 12:15
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
等着楼上朋友的好消息,这个问题本人用了很多方法都无法实现在屏幕的不同分辨率下的居中
关于按钮放在farme上是因为所有图片都放在这上面,实现滚动条的方案也是与这个控件有关的,所以只好这样放了.
2008-02-12 21:26
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
不知为何窗体无法居中,发上源代码求教
目前,奥运邮集在不同分辨率的屏幕下,总是无法实现居中,上面的方法也都用了,还未找到原因,今天将源代码传上来,请大家帮忙看一下,究竟问题出在哪?

奥运邮集第2届源代码.rar (165.72 KB) 窗口无法居中

2008-03-13 14:13
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
这个问题在一般VB6软件中可能不成问题,但它又是的确存在的一个未能得到解决的问题,谁能解决,欢迎前来指点一下!
2008-04-06 17:21
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
问题解决了,用下面的一组代码:
Frame1.Left = (Me.ScaleWidth - Frame1.Width) / 2
    Frame1.Top = (Me.ScaleHeight - Frame1.Height) / 2
2008-04-19 11:39
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
解决窗体内控件Frame超长、超宽时的居中问题——试总结
下面(1)-(6)是偶在几个论坛上网友对控件居中提出的几个方案,而(7)是个成功的方案;
这说明,如果控件超长或超宽,仅对窗体设置在屏幕中的居中是不够的,而是要考虑到控件在窗体(屏幕)的居中问题。可是控件“Frame”的属性中就没有居中属性“StartUpPosition(2-屏幕中心)”这一项;
    而且这组居中代码应该放在Private Sub Form_Resize()中;而不是放在Private Sub Form_Load()中;
此总结如有不妥,请大家指正!

(1)
Private Sub Form_Load()
    Frame1.Left = (Me.ScaleWidth - Frame1.Width) / 2
    Frame1.Top = (Me.ScaleHeight - Frame1.Height) / 2
End Sub
(2)
在窗口布局上面找到那个窗口,点右键-》启动位置  选 屏幕中心
(3)
Frame1.Left = (Me.ScaleWidth - Frame1.Width) / -2
(4)
frame.left=form1.left-具体值自己调整下.!
frame.left=form1.width-具体值自己调整下.!
(5)
Private Sub Form_Resize()
    Frame1.Left = (ScaleWidth - Frame1.Width) / 2
End Sub
(6)
frame.left=(form.width-frame.width)/2
frame.top=(form.height-frame.height)/2
以上几个方案frame控件居中均失败
(7)frame控件居中成功方案
Private Sub Form_Resize()
    Frame1.Left = (Me.ScaleWidth - Frame1.Width) / 2 'frame控件超长时,左右方向居中仅用句即可;
    Frame1.Top = (Me.ScaleHeight - Frame1.Height) / 2 '如果frame控件超宽时,上下方向的居中可用此句;
End Sub
2008-04-21 07:05
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
最后解决的代码:
Frame1.Left = (Me.ScaleWidth - Frame1.Width) / 2
2008-05-10 09:05
快速回复:《奥运邮集》软件的窗体居中问题——“抛砖引玉篇”(之二)问题解决了 ...
数据加载中...
 
   



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

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