日期:2014-05-18  浏览次数:20828 次

关于picturebox上加载控件,怎样保持其位置不变
用picturebox显示了一张图片,设置SizeMode=PictureBoxSizeMode.StretchImage;
然后在程序运行时动态加载一个panel控件,当缩放picturebox时,怎样保持该控件的位置不变,就像该控件就画在该图上一样;另外,该控件好像还有点闪烁,请问是怎么回事?

------解决方案--------------------
问题不清楚,panel用来做什么的?要达到什么杨的效果?
------解决方案--------------------
将控件加入后在picturebox的Resize事件中加入代码:
panel p=new panel();
p.left=100;p.top=100;
大体就是这样了 至于具体位置你可以自己决定;一般应该可以,不行的话回复我
------解决方案--------------------
相对位置
panel.top=image.top+image.height-100;//始终距离image的下边100
panel.left=image.left+image.width-100;//始终距离image的右边100

panel的高度和宽度你也可以根据image的高度宽度动态设置

至于闪烁,你可以设置双缓冲,另外上面panel的设置可以放在image的paint中看会不会好点

------解决方案--------------------
对啊,就是在你的image缩放时用代码动态控制panel的位置和大小啊,你也可以用百分比来计算



 public Frm()
{
InitializeComponent();
//双缓冲
this.SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw, true);
}