to zhiboyi(易): 你佩服他是你的事,我笑他是我的事。to zyl910: 如果你来看的话,我告诉你我为什么笑你! 我奇怪你怎么就那么肯定? "自动垂直方向居中是不可能办到的"在软件的世界有什么是不可以办到的?拜托说话请过过脑子,至少说出的话也该与你那点分相称吧? 我不希望你的分都是通过误导别人得来的!(http://www.csdn.net/expert/topic/993/993779.xml?temp=.779812)
huxiangming(老虎)的方法不错,但还不是完美。有人想我做来看看,那我就做来看看:'需两个text,text1的BorderStyle=0 Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongDim t1fh As LongPrivate Sub Form_Load() Dim a As Font Me.ScaleMode = 3 Set a = Me.Font Set Me.Font = Text1.Font t1fh = Me.TextHeight("a") Set Me.Font = a Text2.Text = "" Text2.Enabled = False Text1.Left = Text2.Left + 2 Text1.Width = Text2.Width - 4 Text1_Change End SubPrivate Sub Text1_Change() Dim a As Long a = t1fh * SendMessage(Text1.hwnd, 186, 0, ByVal 0&) If a > Text2.Height Then Text1.Height = Text2.Height - 4 Text1.Top = Text2.Top + 2 Else Text1.Height = a Text1.Top = (Text2.Height - Text1.Height) / 2 + Text2.Top End If Text1.SelStart = Len(Text1.Text) End Sub 以上用两个text的方法可以实现完美模拟垂直居中,多加了一个text不会占用太多内存的。 你们只要根据自己的代码稍作调整即可!在软件世界有什么做不到的呢?
你做来看看!向你学习一下!
你是谁呀?我在跟你说话吗?
我做什么给你看?!作戏吧你?
不好意思,你没理解我的意思,我也没有理解你的意思!
还是: huxiangming(老虎) 高手!
当然,我佩服:zyl910(910:分儿,我来了!) (L2002)
你佩服他是你的事,我笑他是我的事。to zyl910:
如果你来看的话,我告诉你我为什么笑你!
我奇怪你怎么就那么肯定?
"自动垂直方向居中是不可能办到的"在软件的世界有什么是不可以办到的?拜托说话请过过脑子,至少说出的话也该与你那点分相称吧?
我不希望你的分都是通过误导别人得来的!(http://www.csdn.net/expert/topic/993/993779.xml?temp=.779812)
Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongDim t1fh As LongPrivate Sub Form_Load()
Dim a As Font
Me.ScaleMode = 3
Set a = Me.Font
Set Me.Font = Text1.Font
t1fh = Me.TextHeight("a")
Set Me.Font = a
Text2.Text = ""
Text2.Enabled = False
Text1.Left = Text2.Left + 2
Text1.Width = Text2.Width - 4
Text1_Change
End SubPrivate Sub Text1_Change()
Dim a As Long
a = t1fh * SendMessage(Text1.hwnd, 186, 0, ByVal 0&)
If a > Text2.Height Then
Text1.Height = Text2.Height - 4
Text1.Top = Text2.Top + 2
Else
Text1.Height = a
Text1.Top = (Text2.Height - Text1.Height) / 2 + Text2.Top
End If
Text1.SelStart = Len(Text1.Text)
End Sub
以上用两个text的方法可以实现完美模拟垂直居中,多加了一个text不会占用太多内存的。
你们只要根据自己的代码稍作调整即可!在软件世界有什么做不到的呢?
我的“自动”是说系统的控件没有这样的功能
你那种方法我很久以前就说过了
http://www.csdn.net/expert/topic/566/566919.xml?temp=.1315119回复人: zyl910(910:分儿,我来了!) (L2002) ( ) 信誉:93 2002-3-10 21:09:42 得分:0
把文本框的BorderStyle设为0
在它的后面放一个Lable(BorderStyle设为1)
注意:TextBox的位置自己算,使其在Lable的中央