以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 全局定义的窗体居中问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=48731) |
-- 作者:jnletao -- 发布时间:2014/4/3 19:32:00 -- 全局定义的窗体居中问题 在全局中用VB.NET 定义一个启动窗体,结果怎么调都没法居中, BeforeOpenProject Dim frm As New FormReg frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen frm.TopMost = True \'或 e.HideSplashForm = True frm.ShowDialog() \'模式打开 \'Me.Top = (My.Computer.Screen.Bounds.Height - Me.Height) / 2 \'绝对居中 \'Me.Left = (My.Computer.Screen.Bounds.Width - Me.Width) / 2 用此方法 可以居中,不过启动时有 位移闪动! 代码都是从网上找到,实在找不到解决方法了,求老师们给指教下。 [此贴子已经被作者于2014-4-3 19:32:40编辑过]
|
-- 作者:jnletao -- 发布时间:2014/4/4 8:06:00 -- |
-- 作者:Bin -- 发布时间:2014/4/4 8:36:00 -- 测试打开就在正中啊,没啥问题. frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen 这句是很基本的代码,不应该会有问题的. 可能是你.net或者系统有问题也说不准.你换台电脑测试一下看看.
|
-- 作者:jnletao -- 发布时间:2014/4/4 8:50:00 -- 全局 里的 代码 在VB.NET 预览居中也是正常的,就是 放在 BeforeOpenProject 里不居中了 Dim frm As New LoginWindow frm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen frm.ShowDialog() \'模式打开 如果用这段代码 Dim frm As New LoginWindow frm.Top = (My.Computer.Screen.Bounds.Height - frm.Height) / 2 \'绝对居中 frm.Left = (My.Computer.Screen.Bounds.Width - frm.Width) / 2 frm.ShowDialog() \'模式打开 在foxtable打开也是居中,不过有位移闪动,好像是 重新调整了一下位置。
|
-- 作者:有点甜 -- 发布时间:2014/4/4 11:21:00 -- 把你的 LoginWindow_Load 事件换成
Public Sub New()
End Sub
原因查看form的启动时事件执行顺序 |
-- 作者:jnletao -- 发布时间:2014/4/4 13:10:00 -- 谢谢有点甜老师,果真好了, 又学一招, 刚才我没找到办法,用的透明度切换模拟的。
|
-- 作者:jnletao -- 发布时间:2014/4/4 13:27:00 -- 有点甜老师,我想把我原来的 透明度渐变效果加进去,发现 采用 NEW()方法后 透明度不管了,请问如何解决? Public Sub New() MyBase.New() \'Private Sub LoginWindow_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim xml As New CSysXML("LoginSet.XML") Dim Wwidth As Integer Dim Wheight As Integer Dim Xpos As Integer Dim Ypos As Integer Me.KeepName = New System.Windows.Forms.CheckBox Me.CUserName = New System.Windows.Forms.ComboBox Me.TPassWord = New System.Windows.Forms.TextBox Me.BtnOk = New System.Windows.Forms.Button Me.BtnCanel = New System.Windows.Forms.Button Me.SuspendLayout() ……………… Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None \'无边框,不可移动 Me.BackgroundImage = Image.FromFile(Fwinbg) Me.Icon = New System.Drawing.Icon(ProjectPath & "images\\Users32.ico") Me.Name = "LoginWindow" Me.Opacity = 0 Me.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultBounds \'System.Windows.Forms.FormStartPosition.CenterScreen Me.Top = (My.Computer.Screen.Bounds.Height - Me.Height) / 2 \'绝对居中 Me.Left = (My.Computer.Screen.Bounds.Width - Me.Width) / 2 Me.Text = "登录" Me.TopMost = True Dim I As Double For I = 0.01 To 1 Step 0.01 Me.Opacity = I System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(5) Next Me.Opacity = 1 Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents KeepName As System.Windows.Forms.CheckBox …………………… |
-- 作者:有点甜 -- 发布时间:2014/4/4 14:00:00 -- new() 构造方法,用来初始化窗口数据
load() 事件,用来对窗口外观等修改。
启动过程中......还有其他事件,建议找相关资料看一下 |