c#如何实现在一个panel中插入多个picture c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你应该 没循环一次,计算一次PictureBox的位置。 设置下Locationhttp://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.location(v=vs.80).aspx 刚好前几天我也写了一个 你看看foreach (System.IO.FileInfo file in files) { if (i3 >= 12) { MessageBox.Show("请清理不需要的快捷方式!"); break; } i3++; WshShell shell = new WshShell(); IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut("C:\\Program Files\\Q test\\easy goto\\" + file.Name + ""); PictureBox pb = new PictureBox(); pb.Size = new Size(38, 34); int k3; if (i3 <= 6) { k3 = 61; } else { k3 = 2; } pb.Location = new Point((i3 % 6+1) * 100 - 60, k3); pb.SizeMode = PictureBoxSizeMode.StretchImage; pb.BackColor = Color.Transparent; pb.Tag = file.Name; pb.BorderStyle = BorderStyle.None; panel22.Controls.Add(pb); Label lb = new Label(); lb.BackColor = Color.Transparent; lb.Font = new Font("Cambria", 7, FontStyle.Regular); string k = file.Name.Remove(file.Name.Length - 8, 8); if (k.Length <= 10) { lb.Text = k; lb.Tag = file.Name; } else { lb.Text = k.Substring(0, 10)+"..."; lb.Tag = file.Name; } if (k.Length <= 6) { lb.Location = new Point(pb.Location.X -2, pb.Location.Y + 38); } else { lb.Location = new Point(pb.Location.X - 5, pb.Location.Y + 38); } lb.ForeColor = Color.White; panel22.Controls.Add(lb); 大概意思就是你要添加几个 就事先定义几个的变量 然后用这个变量来计算每个图片的位置 pb.Location = new Point((i3 % 6+1) * 100 - 60, k3); pictureBoxX.Width = ScreenArea.Width; pictureBoxX.Height = ScreenArea.Height;一张图片就把整个屏幕占满了,其他的那还有地方显示 正解流布局,类似网页CSS中的float,所以不是location的问题问题是它将每个picbox的尺寸都设置为显示器的尺寸了,导致picturefLPanel显示不下去控制间隔可以设置pictureBoxX.Margin = new Padding(5); 正解流布局,类似网页CSS中的float,所以不是location的问题问题是它将每个picbox的尺寸都设置为显示器的尺寸了,导致picturefLPanel显示不下去控制间隔可以设置pictureBoxX.Margin = new Padding(5); 是的,还有一个问题是我设置了autoscroll,为什么panel没有出现滚动条 帮忙分析一条正则表达式,多谢! 如何在listbox里面添加Hscrollbar Socket非法退出 面试题,共大伙参考 asp.net c# 两组字符串比较后,怎么剩下不匹配的字符. 在Lock的作用域中是否可以执行return操作? 在ListView的单击事件中如何获得单击项的行、列索引? timer问题:能否在第一个时间间隔前先引发一次处理程序 关于一个WinForm的问题请教?在线等! c++中的memset在c#中如何替换? 用C#扫面周围空间无线网络的SSID、BSSID和RSSI C# 关于串口进制转换问题
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.location(v=vs.80).aspx
foreach (System.IO.FileInfo file in files)
{
if (i3 >= 12)
{
MessageBox.Show("请清理不需要的快捷方式!");
break;
}
i3++;
WshShell shell = new WshShell();
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut("C:\\Program Files\\Q test\\easy goto\\" + file.Name + "");
PictureBox pb = new PictureBox();
pb.Size = new Size(38, 34); int k3;
if (i3 <= 6)
{
k3 = 61;
}
else
{
k3 = 2;
}
pb.Location = new Point((i3 % 6+1) * 100 - 60, k3);
pb.SizeMode = PictureBoxSizeMode.StretchImage;
pb.BackColor = Color.Transparent;
pb.Tag = file.Name;
pb.BorderStyle = BorderStyle.None;
panel22.Controls.Add(pb);
Label lb = new Label();
lb.BackColor = Color.Transparent;
lb.Font = new Font("Cambria", 7, FontStyle.Regular);
string k = file.Name.Remove(file.Name.Length - 8, 8);
if (k.Length <= 10)
{
lb.Text = k;
lb.Tag = file.Name;
}
else
{
lb.Text = k.Substring(0, 10)+"...";
lb.Tag = file.Name;
}
if (k.Length <= 6)
{
lb.Location = new Point(pb.Location.X -2, pb.Location.Y + 38);
}
else
{
lb.Location = new Point(pb.Location.X - 5, pb.Location.Y + 38);
}
lb.ForeColor = Color.White;
panel22.Controls.Add(lb);
pb.Location = new Point((i3 % 6+1) * 100 - 60, k3);
pictureBoxX.Height = ScreenArea.Height;
一张图片就把整个屏幕占满了,其他的那还有地方显示
问题是它将每个picbox的尺寸都设置为显示器的尺寸了,导致picturefLPanel显示不下去
控制间隔可以设置pictureBoxX.Margin = new Padding(5);
问题是它将每个picbox的尺寸都设置为显示器的尺寸了,导致picturefLPanel显示不下去
控制间隔可以设置pictureBoxX.Margin = new Padding(5);
是的,还有一个问题是我设置了autoscroll,为什么panel没有出现滚动条