private void btnAdd_Click(object sender, EventArgs e) //上传按钮事件
{
OpenFileDialog f = new OpenFileDialog();
f.Multiselect = true;
f.Filter = "位图文件(*.BMP)|*.bmp|JPEG(*.JPEG)|*.jpg|PNG(*.PNG)|*.png"; if (f.ShowDialog(this) == DialogResult.Cancel) return;
string[] fileName = f.FileNames;
foreach (string strName in fileName)
{
PictureBox pb = new PictureBox();//大图片
pb.Size = new Size(133, 112);
pb.BackColor = Color.Transparent;
PictureBox pb2 = new PictureBox();//小图片
pb2.Size = new Size(25, 24);
pb2.Image = DataCache.GetDataImage(102);//自己写的DataCache类从数据库获得图片
if (plView.Controls.Count == 0)//plView 显示大图片的面板
{
pb.Location = new Point(8, 12);//第一张图片的定位
}
else //plView一排最多放4个大图片,排完另起一行
{
int x1, y1;
int j = plView.Controls.Count % 4;
if (j == 0)
{
x1 = 8;
y1 = plView.Controls[plView.Controls.Count - 1].Location.Y;
pb.Location = new Point(x1, y1 + 112 + 6);
}
else
{
x1 = plView.Controls[plView.Controls.Count - 1].Location.X;
y1 = plView.Controls[plView.Controls.Count - 1].Location.Y;
pb.Location = new Point(x1 + 133 + 6, y1);
}
}
pb2.Location = new Point(pb.Location.X + pb.Size.Width - pb2.Width - 3, pb.Location.Y + pb.Size.Height - pb2.Height - 3);//小图片根据大图片的location设置自己的location(显示在大图片的右下角) pb.Image = Image.FromFile(strName, false);
pb.SizeMode = PictureBoxSizeMode.Zoom;
plView.Controls.Add(pb);
pb.Controls.Add(pb2);
pb2.Visible = true;
} this.AutoSize = true;
}
所有大图片显示没问题,但是只有第一张大图片中的小图片可以出来。其余的不行。为什么呢?是location的问题还是??
请高人指点一下!
{
OpenFileDialog f = new OpenFileDialog();
f.Multiselect = true;
f.Filter = "位图文件(*.BMP)|*.bmp|JPEG(*.JPEG)|*.jpg|PNG(*.PNG)|*.png"; if (f.ShowDialog(this) == DialogResult.Cancel) return;
string[] fileName = f.FileNames;
foreach (string strName in fileName)
{
PictureBox pb = new PictureBox();//大图片
pb.Size = new Size(133, 112);
pb.BackColor = Color.Transparent;
PictureBox pb2 = new PictureBox();//小图片
pb2.Size = new Size(25, 24);
pb2.Image = DataCache.GetDataImage(102);//自己写的DataCache类从数据库获得图片
if (plView.Controls.Count == 0)//plView 显示大图片的面板
{
pb.Location = new Point(8, 12);//第一张图片的定位
}
else //plView一排最多放4个大图片,排完另起一行
{
int x1, y1;
int j = plView.Controls.Count % 4;
if (j == 0)
{
x1 = 8;
y1 = plView.Controls[plView.Controls.Count - 1].Location.Y;
pb.Location = new Point(x1, y1 + 112 + 6);
}
else
{
x1 = plView.Controls[plView.Controls.Count - 1].Location.X;
y1 = plView.Controls[plView.Controls.Count - 1].Location.Y;
pb.Location = new Point(x1 + 133 + 6, y1);
}
}
pb2.Location = new Point(pb.Location.X + pb.Size.Width - pb2.Width - 3, pb.Location.Y + pb.Size.Height - pb2.Height - 3);//小图片根据大图片的location设置自己的location(显示在大图片的右下角) pb.Image = Image.FromFile(strName, false);
pb.SizeMode = PictureBoxSizeMode.Zoom;
plView.Controls.Add(pb);
pb.Controls.Add(pb2);
pb2.Visible = true;
} this.AutoSize = true;
}
所有大图片显示没问题,但是只有第一张大图片中的小图片可以出来。其余的不行。为什么呢?是location的问题还是??
请高人指点一下!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货