| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2824 人关注过本帖
标题:《奥运邮集》软件的窗体居中问题——“抛砖引玉篇”(之二)问题解决了
只看楼主 加入收藏
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
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
我想这里有几个对象的位置关系:Form,Frame,Image的关系,实际上Frame在窗体中的定位,Image在Frame中的定位。如果相互定位都居中,那与分辨率应该无关。

2008-04-06 17:50
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
ytsm0526
Rank: 2
来 自:西安市
等 级:论坛游民
威 望:2
帖 子:203
专家分:60
注 册:2007-10-28
收藏
得分:0 
谢谢了,收到

作舍道边,三年不成。
多抽出一分钟时间学习,让你的生命更加精彩!,
2008-04-20 08:29
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.021880 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved