我的窗体上有一个text,窗体在运行时是最大化 ,有什么办法可以让text也和外面的窗体一起变化!!
解决方案 »
- 怎样让窗体1中的treeview节点与窗体2中的treeview节点保持同步?
- vb如何通过ini文件连接sql数据库
- 如何在vb的text框中显示一个红桃♥
- 如何用VB实现每隔五分钟自动弹出一个窗口???
- 从央视主持的失态到现在普遍流传日本队进决赛是够运气的说法,不难看出中国足球永无出头
- split函数的用法
- 试过将SQL SERVER 7 的数据库备份文件还原到SQL SERVER 2OOO 的大虾请进!
- 请财务方面或者进销存方面的大牛给点意见!!
- 讨论VB与EXCEL
- 如何用语句实现让textbox中的文字全选
- 关于个查询的问题,解决给分(急)!!!
- 一段串口通讯的小程序,各位看看哪里出错了,总是死循环
Resize 事件
当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生。(例如,一个窗体被最大化、最小化或被还原。)语法Private Sub Form_Resize( )Private Sub object_Resize(height As Single, width As Single)Resize 事件语法包括下列部分:部分 描述
object 一个对象表达式,其值是“应用于”列表中的一个对象。
height 指定控件新高度的数。
width 指定控件新宽度的数。
说明当父窗体调整大小时,可用 Resize 事件过程来移动控件或调整其大小。也可用此事件过程来重新计算那些变量或属性,如:ScaleHeight 和 ScaleWidth 等,它们取决于该窗体的尺寸。如果在调整大小时想要保持图形的大小与窗体的大小成比例,可在一个 Resize 事件中通过使用 Refresh 方法调用 Paint 事件。任何时候只要 AutoRedraw 属性被设置为 False 而且窗体被调整大小,Visual Basic 也会按 Resize 和 Paint 的顺序调用相关的事件。当给这些相关事件附加过程时,要确保它们的操作不会互相冲突。当一个 OLE 容器控件的 SizeMode 属性被设置为 2(自动调大小)时,该控件自动根据所显示的包含于该控件之中的对象的大小来调整其大小。如果所显示的对象的大小发生变化,则该控件自动重调其大小以适应该对象的变化。当这种情况出现时,为该对象调用 Resize 事件会在 OLE 容器控件被重调大小之前发生。height 和 width 部分指示该对象显示的最佳大小(这个尺寸由创建该对象的应用程序决定)。可通过在 Resize 事件中改变 height 和 width 部分的值来按不同的尺寸设定控件的大小。Resize 事件示例
本例在任何调整窗体大小时的时候,都将自动调整一个 TextBox 控件的大小以填充该窗体。要尝试这个例子,可以将代码粘贴到包含 TextBox 的窗体声明部分。 设置 TextBox 控件的 MultiLine 属性为 True,ScrollBars 属性为 3,BorderStyle 属性为 0,然后按F5键并调整窗体大小。Private Sub Form_Load ()
Text1.Text = "" ' 清除文本。
End SubPrivate Sub Form_Resize ()
Text1.Move 0,0, ScaleWidth, ScaleHeight
End Sub
For Each CtrlTmp in Form1.Controls
If Typeof CtrlTmp is TextBox then
if CtrlTmp.Name="Text1" then
CtrlTmp.Width=me.Width/5
CtrlTmp.Height=me.Width/2
end if
End If
Next CtrolTmp
以上代码加入Resise事件中
Private Sub Form_Load()
Dim obj As Control
FormOldWidth = Form1.ScaleWidth
FormOldHeight = Form1.ScaleHeight
For Each obj In Form1
obj.Tag = obj.Left & " " & obj.Top & " " & obj.Width & " " & obj.Height & " "
Next objEnd SubPrivate Sub Form_Resize()
Dim ScaleX As Double, ScaleY As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Pos(4) As Double ScaleX = Form1.ScaleWidth / FormOldWidth
ScaleY = Form1.ScaleHeight / FormOldHeight
Dim obj As Control
For Each obj In Form1
StartPos = 1
For i = 0 To 4
TempPos = InStr(StartPos, obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = Mid(obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(i) = 0
End If
obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next i
Next objEnd Sub添加一个控件,全部复制即可