所有分急求 :picturebox 的问题的解答 1 2 3 1 2 3 都是panel中的picturebox ,我现在动态生成picturebox4,显示在1的位置,1 2 3 都相应的后移一个位置,也就是 4 1 2 3 ,也就是现在的1显示在2的位置上,依次,怎么实现 ,但是不能一一列举(类似这样的picturebox4.location=....), 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果不让用Location的话.考虑使用FlowLayoutPanel 加第4个的时候把里面的picturebox都取出来.然后再加进去一次.就可以实现你的需求了供你参考. 说说我的思路先排序foreach(Control control in this.pl .Controls) { if(control.GetType () == typeof(PictureBox) ) { MaxNum++; list.Add (control); //對list進行排序,會以升序來排列。 list.Sort((IComparer)new PictureBoxComparer()); //枚舉所有的pictureBox for (i = 0; i <list.Count;i++ ) { PictureBox pic = (PictureBox)list[i]; } } }但是我不知道怎么让list[0]赋值给list[1],我 想这么写pb=(PictureBox)list[0];for(MaxNum=1;MaxNum<=7;MaxNum++){ 怎么让list[MaxNum]赋值给list[MaxNum+1]}不知道我的想法对不对,但是我不知道其他的实现方法了 ,高人赶快指教一下, for(MaxNum=6;MaxNum >=0;MaxNum--){ list[MaxNum+1]=list[MaxNum]; list[0]=pb;} 我不知道你的整体思路是怎样的,所以不知道该怎么答。1.有个list来存pb,在增加时,新的pb你要放在第一位,就 list.insert(0,pb);2.显示方法。不用去管list里面的排序(排序是交给在添加或删除时做的), 一个循环,从list[0]-list[count-1],设位置显示出来。添加删除等操作时,就调用一下显示方法。 我需要让所有的PictureBox都显示在panel的中间位置,但是我还要动态生成一个PictureBox,但是动态生成的不一定在什么位置。我写个方法,就是只要有位置pos,动态生成的PictureBox就显示在相应的位置上,但是仍然要全部显示在panel的中间位置,不知道够明白没有(最多有8个PictureBox)private void ShowCoil(int pos){ switch(pos) case 1: ........}红色怎么写 问下为什么修改控件Location,不起作用呢 控件.location=new point (x轴,y轴); 要PictureBox数组吧,去仔细地控制下标! 测试下吧 看看能不能成功 List<PictureBox> list = new List<PictureBox>(); foreach (Control c in this.Controls) { if (c is PictureBox) { list.Add((PictureBox)c); } } //这里的的list.sort()我就不写了.. PictureBox p4 = new PictureBox(); p4.Image = global::WindowsApplication3.Properties.Resources.Winter; p4.Size = list[0].Size; p4.Location = list[0].Location; this.Controls.Add(p4); for (int i = 0; i < list.Count; i++) { if ((list[i].Location.X + list[i].Location.X) <= this.Size.Width) { list[i].Location = new Point(list[i].Location.X + list[i].Size.Height, list[i].Location.Y); } else { if ((list[i].Location.Y + list[i].Location.Y) < this.Size.Height) { list[i].Location = new Point(p4.Location.X, p4.Location.Y + p4.Size.Height); } } } 关于一个WPF Toolkit datagrid控件的问题 c# 远程控制 C# 控件覆盖的问题 C# 做OPC Client ?? 郁闷了,,哪个给看看这个access录入问题..怎么一直报错呢? 如何用ODP.net(Oracle.DataAccess.Client非System.Data.OracleClient)生成类型化的DataSet? 请教关于BMP位图的问题! C# 自定义LINQ 老大们帮忙呀,访问器的问题,如何在访问器中使用数组? c# 用directx的video如何实现视频拉伸 listbox绑定数据库后的问题 如何在windows服务程序中调用带窗口中的程序?
加第4个的时候把里面的picturebox都取出来.然后再加进去一次.就可以实现你的需求了
供你参考.
先排序foreach(Control control in this.pl .Controls)
{
if(control.GetType () == typeof(PictureBox) )
{
MaxNum++;
list.Add (control);
//對list進行排序,會以升序來排列。
list.Sort((IComparer)new PictureBoxComparer());
//枚舉所有的pictureBox
for (i = 0; i <list.Count;i++ )
{
PictureBox pic = (PictureBox)list[i];
}
}
}
但是我不知道怎么让list[0]赋值给list[1],
我 想这么写
pb=(PictureBox)list[0];
for(MaxNum=1;MaxNum<=7;MaxNum++)
{
怎么让list[MaxNum]赋值给list[MaxNum+1]
}不知道我的想法对不对,但是我不知道其他的实现方法了 ,高人赶快指教一下,
for(MaxNum=6;MaxNum >=0;MaxNum--)
{
list[MaxNum+1]=list[MaxNum];
list[0]=pb;
}
2.显示方法。不用去管list里面的排序(排序是交给在添加或删除时做的),
一个循环,从list[0]-list[count-1],设位置显示出来。添加删除等操作时,就调用一下显示方法。
panel的中间位置,不知道够明白没有(最多有8个PictureBox)
private void ShowCoil(int pos)
{
switch(pos)
case 1:
........
}
红色怎么写
为什么修改控件Location,不起作用呢
控件.location=new point (x轴,y轴);
测试下吧 看看能不能成功
List<PictureBox> list = new List<PictureBox>();
foreach (Control c in this.Controls)
{
if (c is PictureBox)
{
list.Add((PictureBox)c);
}
}
//这里的的list.sort()我就不写了..
PictureBox p4 = new PictureBox();
p4.Image = global::WindowsApplication3.Properties.Resources.Winter;
p4.Size = list[0].Size;
p4.Location = list[0].Location;
this.Controls.Add(p4); for (int i = 0; i < list.Count; i++)
{ if ((list[i].Location.X + list[i].Location.X) <= this.Size.Width)
{
list[i].Location = new Point(list[i].Location.X + list[i].Size.Height, list[i].Location.Y);
}
else
{
if ((list[i].Location.Y + list[i].Location.Y) < this.Size.Height)
{
list[i].Location = new Point(p4.Location.X, p4.Location.Y + p4.Size.Height);
}
} }