15 个解决方案
#1
望大侠们提出正解,不是某一个,而是所有的,包括动态生成的控件在内,都可以自动调整
大小
大小
#2
设Dock或Anchor属性又或者自己写代码去控制
#3
设Dock或Anchor属性,不能解决动态添加的控件问题
程序控制怎么控制阿,大侠
resizeform如何写?
程序控制怎么控制阿,大侠
resizeform如何写?
#4
动态添加也可以设它的Dock或Anchor属性
#5
给你一个图片随窗体大小而改变大小的例子。我想控件也和图片一样的吧!你看看改一下就行了!
Private Sub frmMain_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized OrElse Me.ClientSize.Width < 10 OrElse Me.ClientSize.Height < 10 Then
Return
End If
If System.IO.File.Exists(Application.StartupPath & "\Back.jpg") Then
Me.BackgroundImage = New Drawing.Bitmap(Image.FromFile(Application.StartupPath & "\Back.jpg"), Me.ClientSize.Width, Me.ClientSize.Height)
End If
End Sub
Private Sub frmMain_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized OrElse Me.ClientSize.Width < 10 OrElse Me.ClientSize.Height < 10 Then
Return
End If
If System.IO.File.Exists(Application.StartupPath & "\Back.jpg") Then
Me.BackgroundImage = New Drawing.Bitmap(Image.FromFile(Application.StartupPath & "\Back.jpg"), Me.ClientSize.Width, Me.ClientSize.Height)
End If
End Sub
#6
你要计算好比例(也就是窗体变化后的缩放比例),然后在form的sizechange里面,把所有控件都按照比例来缩放就是了。
#7
我的解决方案是这样子的,不知道还有没有更好的方法,谢谢各位大侠赏光
Dim WBaseValue As Double
Dim HBaseValue As Double
Private Sub Form1_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Resize
Dim X As Integer
Dim Y As Integer
Dim control As Control
For Each control In Me.Controls
X = control.Location.X * Me.Width * WBaseValue
Y = control.Location.Y * Me.Height * HBaseValue
control.Location = New System.Drawing.Point(X, Y)
control.Height = control.Height * Me.Height * HBaseValue
control.Width = control.Width * Me.Width * WBaseValue
Next
WBaseValue = 1 / Me.Width
HBaseValue = 1 / Me.Height
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WBaseValue = 1 / Me.Width
HBaseValue = 1 / Me.Height
End Sub
#8
hamadou(闵峰--迎接2006) 正解
#9
用好Dock和Anchor属性就可以了,好好研究吧.自己计算比例缩放简直是.......
#10
我也建议用DOCK,按钮太大会很难看的
#11
同意 W_W_Q(韦一笑) 的。
.net都出来这么久了,还有人完全是上个世纪的做法,估计是现在市面上的入门书太滥、内容简单地翻新过时的开发平台的代码造成的误导的缘故。
.net都出来这么久了,还有人完全是上个世纪的做法,估计是现在市面上的入门书太滥、内容简单地翻新过时的开发平台的代码造成的误导的缘故。
#12
用好Dock和Anchor属性,有时候,特别是Button会变得特别难看
#13
设Dock或Anchor属性,可以做到很完美
#14
设Dock或Anchor属性,可以做到很完美
每个控件都要设计,而Resize只需简单代码,上世纪方法不见得是好方法,谦虚点,哥哥
每个控件都要设计,而Resize只需简单代码,上世纪方法不见得是好方法,谦虚点,哥哥
#15
个人所好问题,有写人喜欢用代码来实现,有写人喜欢用现有的方法&属性来实现。
#1
望大侠们提出正解,不是某一个,而是所有的,包括动态生成的控件在内,都可以自动调整
大小
大小
#2
设Dock或Anchor属性又或者自己写代码去控制
#3
设Dock或Anchor属性,不能解决动态添加的控件问题
程序控制怎么控制阿,大侠
resizeform如何写?
程序控制怎么控制阿,大侠
resizeform如何写?
#4
动态添加也可以设它的Dock或Anchor属性
#5
给你一个图片随窗体大小而改变大小的例子。我想控件也和图片一样的吧!你看看改一下就行了!
Private Sub frmMain_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized OrElse Me.ClientSize.Width < 10 OrElse Me.ClientSize.Height < 10 Then
Return
End If
If System.IO.File.Exists(Application.StartupPath & "\Back.jpg") Then
Me.BackgroundImage = New Drawing.Bitmap(Image.FromFile(Application.StartupPath & "\Back.jpg"), Me.ClientSize.Width, Me.ClientSize.Height)
End If
End Sub
Private Sub frmMain_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
If Me.WindowState = FormWindowState.Minimized OrElse Me.ClientSize.Width < 10 OrElse Me.ClientSize.Height < 10 Then
Return
End If
If System.IO.File.Exists(Application.StartupPath & "\Back.jpg") Then
Me.BackgroundImage = New Drawing.Bitmap(Image.FromFile(Application.StartupPath & "\Back.jpg"), Me.ClientSize.Width, Me.ClientSize.Height)
End If
End Sub
#6
你要计算好比例(也就是窗体变化后的缩放比例),然后在form的sizechange里面,把所有控件都按照比例来缩放就是了。
#7
我的解决方案是这样子的,不知道还有没有更好的方法,谢谢各位大侠赏光
Dim WBaseValue As Double
Dim HBaseValue As Double
Private Sub Form1_Resize(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Resize
Dim X As Integer
Dim Y As Integer
Dim control As Control
For Each control In Me.Controls
X = control.Location.X * Me.Width * WBaseValue
Y = control.Location.Y * Me.Height * HBaseValue
control.Location = New System.Drawing.Point(X, Y)
control.Height = control.Height * Me.Height * HBaseValue
control.Width = control.Width * Me.Width * WBaseValue
Next
WBaseValue = 1 / Me.Width
HBaseValue = 1 / Me.Height
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WBaseValue = 1 / Me.Width
HBaseValue = 1 / Me.Height
End Sub
#8
hamadou(闵峰--迎接2006) 正解
#9
用好Dock和Anchor属性就可以了,好好研究吧.自己计算比例缩放简直是.......
#10
我也建议用DOCK,按钮太大会很难看的
#11
同意 W_W_Q(韦一笑) 的。
.net都出来这么久了,还有人完全是上个世纪的做法,估计是现在市面上的入门书太滥、内容简单地翻新过时的开发平台的代码造成的误导的缘故。
.net都出来这么久了,还有人完全是上个世纪的做法,估计是现在市面上的入门书太滥、内容简单地翻新过时的开发平台的代码造成的误导的缘故。
#12
用好Dock和Anchor属性,有时候,特别是Button会变得特别难看
#13
设Dock或Anchor属性,可以做到很完美
#14
设Dock或Anchor属性,可以做到很完美
每个控件都要设计,而Resize只需简单代码,上世纪方法不见得是好方法,谦虚点,哥哥
每个控件都要设计,而Resize只需简单代码,上世纪方法不见得是好方法,谦虚点,哥哥
#15
个人所好问题,有写人喜欢用代码来实现,有写人喜欢用现有的方法&属性来实现。