winform控件定位问题:用anchor属性定位好控件后,还能相对于原位置偏移吗?

顽石开化 2015-07-12 06:10:52
譬如,我用以下代码给一名为panelCtrl的控件定位,
panelCtrl.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Right | System.Windows.Forms.AnchorStyles.Top)));
然后,我还想让该控件在以上定位的基础上上移50px,不知winform有实现方法没?哪位大侠知道的话请帮下忙,先谢了。
...全文
443 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
suenjoe 2015-10-23
  • 打赏
  • 举报
回复
楼主,我在动态生成控件的时候也发现了这个问题,我是这样解决的,比如label,先设置它的AutoSize=true,然后设置AnchorStyles.Left,试试看,应该可以解决,祝你好运!
顽石开化 2015-07-13
  • 打赏
  • 举报
回复
引用 5 楼 ajianchina 的回复:
这要看你超过的是什么边界,你超过了form怎么显示呢?如果超出了容器,可以重新指定父容器进行显示。你是想实现什么东东呢?
实际项目中我已按照重新指定父容器来实现定位显示了。只是比较web中css定位功能,觉得winform中也应该有相似功能,看来确实没有,只能重新定义父容器了。 我正在实现的功能是这样的,有个TabControl,里面的各个tabpage里都有自己的表格,他们都有各自的翻页条,我想把翻页条放在TabControl的header的右端,以利用这个空白地方,开始时我把翻页条放进tabPage里面了,怎么也不行,后来只能将翻页条的父容器指定给了TabControl的父容器了。
ajianchina 2015-07-12
  • 打赏
  • 举报
回复
这要看你超过的是什么边界,你超过了form怎么显示呢?如果超出了容器,可以重新指定父容器进行显示。你是想实现什么东东呢?
顽石开化 2015-07-12
  • 打赏
  • 举报
回复
winform中控件越过边界就一定不能显示出来吗?在web中越过边界如将top设为负数,还是可以自由显示出来的
ajianchina 2015-07-12
  • 打赏
  • 举报
回复
超越了边界当然消失了啊,你用BringToFront设置顶层显示也没用啊,你通过SetBounds方法设置的时候不要超过边界不就行了。如果我理解的不是你要表达的意思,你可以放两张图片,分别是SetBounds执行之前跟执行之后的两张图片。
顽石开化 2015-07-12
  • 打赏
  • 举报
回复
感谢楼上的回答,可我发现了下,如采用楼上的代码,panelCtrl会显示不出来,估计是因为超越了边界,而被遮挡住了,有什么办法能让它不被遮挡吗?BringToFront我也试过了,没用
ajianchina 2015-07-12
  • 打赏
  • 举报
回复

panelCtrl.SetBounds(panelCtrl.Location.X, panelCtrl.Location.Y - 50, panelCtrl.Width, panelCtrl.Height);

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧