C# winform 动态创建自定义位置按钮 怎样让控件随窗体的大小和屏幕的分辨率而自动适应

时间:2021-07-11 03:50:04
请教:在窗体上动态创建了button按钮,并且在创建的时候给这个按钮指定了显示在窗体上的位置,就是x,y坐标。拿到屏幕的大小和分辨率不一样的情况下,怎么样才能使按钮自动适应呢?  谢谢!!

20 个解决方案

#1


只是使按钮适应?那其他的控件怎么办,被按钮遮住?

#2


之前处理过类似问题,将控件放到panel中,然后根据panel来计算控件的相对位置。
这样form大小调整后,控件就可以相对实现自动适应。
不知道还有没有其他更方便的办法

#3


寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?

#4


不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。

#5


引用 2 楼 xian_wwq 的回复:
之前处理过类似问题,将控件放到panel中,然后根据panel来计算控件的相对位置。
这样form大小调整后,控件就可以相对实现自动适应。
不知道还有没有其他更方便的办法
 动态创建的按钮,并且创建的时候给了按钮出现在窗体上的坐标。 怎么放进去呢?

#6


引用 3 楼 Z65443344 的回复:
寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

#7


引用 6 楼 u012811726 的回复:
Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.

#8


引用 7 楼 Z65443344 的回复:
Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

#9


注册窗体大小变化的事件 和 系统分辨系改变的消息 然后定义按钮在窗体的比例就好了撒.

#10


引用 9 楼 qq6648208281 的回复:
注册窗体大小变化的事件 和 系统分辨系改变的消息 然后定义按钮在窗体的比例就好了撒.
  大哥有代码吗?感觉还行。

#11


这个要你自己去查查了  貌似系统分辨率是有一个消息的

#12


引用 11 楼 qq6648208281 的回复:
这个要你自己去查查了  貌似系统分辨率是有一个消息的
  好吧 谢谢。

#13


引用 8 楼 u012811726 的回复:
Quote: 引用 7 楼 Z65443344 的回复:

Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

设置好了没关系,修改一下按钮坐标就行了啊.
获取屏幕分辨率不妥,除非你窗口是固定大小的.不过如果窗口固定大小,那控件也可以固定位置了.
为了在用户修改了窗口大小后依然不会有按钮跑到窗口外,或窗口有空白,还是需要获取窗口大小.
可以在窗口的sizechanged事件里做脚本.

#14


引用 13 楼 Z65443344 的回复:
Quote: 引用 8 楼 u012811726 的回复:

Quote: 引用 7 楼 Z65443344 的回复:

Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

设置好了没关系,修改一下按钮坐标就行了啊.
获取屏幕分辨率不妥,除非你窗口是固定大小的.不过如果窗口固定大小,那控件也可以固定位置了.
为了在用户修改了窗口大小后依然不会有按钮跑到窗口外,或窗口有空白,还是需要获取窗口大小.
可以在窗口的sizechanged事件里做脚本.

  窗体没控制大小,就设置了一个全屏。 试了几个办法还是不行啊。

#15


用wpf开发的话  以上问题都不是问题。

#16


引用 15 楼 duanzi_peng 的回复:
用wpf开发的话  以上问题都不是问题。
  就是没用wpf开发的嘛。

#17


TableLayoutPanel试试

#18


我们一般是做两套分辨率,1024*768  1600*900 两套下面动态设置控件位置

#19


引用 17 楼 assky124 的回复:
TableLayoutPanel试试


引用 18 楼 wmg494005678 的回复:
我们一般是做两套分辨率,1024*768  1600*900 两套下面动态设置控件位置
  呵呵 我们的电脑不能设置那么大的分辨率

#20


注册事件之后 窗体变大  控件也变大呗  设置好距离就好了

#1


只是使按钮适应?那其他的控件怎么办,被按钮遮住?

#2


之前处理过类似问题,将控件放到panel中,然后根据panel来计算控件的相对位置。
这样form大小调整后,控件就可以相对实现自动适应。
不知道还有没有其他更方便的办法

#3


寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?

#4


不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。

#5


引用 2 楼 xian_wwq 的回复:
之前处理过类似问题,将控件放到panel中,然后根据panel来计算控件的相对位置。
这样form大小调整后,控件就可以相对实现自动适应。
不知道还有没有其他更方便的办法
 动态创建的按钮,并且创建的时候给了按钮出现在窗体上的坐标。 怎么放进去呢?

#6


引用 3 楼 Z65443344 的回复:
寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

#7


引用 6 楼 u012811726 的回复:
Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.

#8


引用 7 楼 Z65443344 的回复:
Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

#9


注册窗体大小变化的事件 和 系统分辨系改变的消息 然后定义按钮在窗体的比例就好了撒.

#10


引用 9 楼 qq6648208281 的回复:
注册窗体大小变化的事件 和 系统分辨系改变的消息 然后定义按钮在窗体的比例就好了撒.
  大哥有代码吗?感觉还行。

#11


这个要你自己去查查了  貌似系统分辨率是有一个消息的

#12


引用 11 楼 qq6648208281 的回复:
这个要你自己去查查了  貌似系统分辨率是有一个消息的
  好吧 谢谢。

#13


引用 8 楼 u012811726 的回复:
Quote: 引用 7 楼 Z65443344 的回复:

Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

设置好了没关系,修改一下按钮坐标就行了啊.
获取屏幕分辨率不妥,除非你窗口是固定大小的.不过如果窗口固定大小,那控件也可以固定位置了.
为了在用户修改了窗口大小后依然不会有按钮跑到窗口外,或窗口有空白,还是需要获取窗口大小.
可以在窗口的sizechanged事件里做脚本.

#14


引用 13 楼 Z65443344 的回复:
Quote: 引用 8 楼 u012811726 的回复:

Quote: 引用 7 楼 Z65443344 的回复:

Quote: 引用 6 楼 u012811726 的回复:

Quote: 引用 3 楼 Z65443344 的回复:

寻求解决方案之前,先想明白需求,你到底想实现一个什么样的效果.
仅仅是按钮位置变化能搞定的,还是按钮大小和字体也要动态调整,要不要修改窗口布局?
其他控件的位置关系怎么办?
  不好意思 搞忘说了窗体上没有其他控件运行之后创建的button按钮。 按钮大小不用改变

是很多按钮?
可以取窗体的宽和高属性,动态计算按钮位置啊.不管窗口多大,都让按钮等距离布满窗口就行了啊.


你的意思是运行之后获取窗体的宽和高?按钮位置在后台已经设置好了 设置的xy坐标。怎么等距离布满啊?

设置好了没关系,修改一下按钮坐标就行了啊.
获取屏幕分辨率不妥,除非你窗口是固定大小的.不过如果窗口固定大小,那控件也可以固定位置了.
为了在用户修改了窗口大小后依然不会有按钮跑到窗口外,或窗口有空白,还是需要获取窗口大小.
可以在窗口的sizechanged事件里做脚本.

  窗体没控制大小,就设置了一个全屏。 试了几个办法还是不行啊。

#15


用wpf开发的话  以上问题都不是问题。

#16


引用 15 楼 duanzi_peng 的回复:
用wpf开发的话  以上问题都不是问题。
  就是没用wpf开发的嘛。

#17


TableLayoutPanel试试

#18


我们一般是做两套分辨率,1024*768  1600*900 两套下面动态设置控件位置

#19


引用 17 楼 assky124 的回复:
TableLayoutPanel试试


引用 18 楼 wmg494005678 的回复:
我们一般是做两套分辨率,1024*768  1600*900 两套下面动态设置控件位置
  呵呵 我们的电脑不能设置那么大的分辨率

#20


注册事件之后 窗体变大  控件也变大呗  设置好距离就好了

#21