listview里的图片移除

dolo1984 2009-02-06 12:14:29
我在一个窗口里添加图片是这样添加的

/// <summary>
/// 加载图片
/// </summary>
public void LoadImage()
{
listView1.Groups.Add(group1);
listView1.Groups.Add(group2);

listView1.Items.Clear();
imageList1.Images.Clear();
this.imageList1.ImageSize = new Size(80, 60);
this.listView1.LargeImageList = this.imageList1;

string TempDirectory = dateTimePicker1.Value.ToShortDateString();

string[] TempDeal = TempDirectory.Split('-');

if (TempDeal[1].Length < 2)
{
TempDeal[1] = "0" + TempDeal[1];
}
if (TempDeal[2].Length < 2)
{
TempDeal[2] = "0" + TempDeal[2];
}
if (System.IO.Directory.Exists(TempDeal[0] + TempDeal[1] + TempDeal[2]))
{
tPlist = System.IO.Directory.GetFiles(TempDeal[0] + TempDeal[1] + TempDeal[2]);

for (int i = 0; i < tPlist.Length; i++)
{
System.IO.FileInfo fi = new System.IO.FileInfo(tPlist[i].ToString().Replace(TempDeal[0] + TempDeal[1] + TempDeal[2] + "\\", ""));
string[] a = fi.ToString().Split('_');
//fi.Extension.ToUpper() == ".JPG"
if (a.Length == 3)
{
if (a[2].Trim() == "有效.jpg")
{
imageList1.Images.Add(tPlist[i].ToString(),TempImage(tPlist[i].ToString()));
ListViewItem item = new ListViewItem(tPlist[i].ToString().Replace(TempDeal[0] + TempDeal[1] + TempDeal[2] + "\\", ""), i, group1);
listView1.Items.Add(item);
}
else
{
imageList1.Images.Add(TempImage(tPlist[i].ToString()));
ListViewItem item = new ListViewItem(tPlist[i].ToString().Replace(TempDeal[0] + TempDeal[1] + TempDeal[2] + "\\", ""), i, group2);
listView1.Items.Add(item);
}
}
}
}
EffectiveCount.Text = group1.Items.Count.ToString() + " 车";
InvalidCount.Text = group2.Items.Count.ToString() + " 车";
}



我要在另一个窗口里做图片的删除和添加操作

/// <summary>
/// 有效图
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string[] ChooseDeal=FRM_PIC.PicFath.Split('_');
if (ChooseDeal[2].Trim() == "_有效.jpg")
{ return; }
else
{
FRM_PIC KP = (FRM_PIC)this.Tag;
//int a = FRM_PIC.ListViewCount;
//string Filefath=ChooseDeal[0].Substring(ChooseDeal[0].LastIndexOf("\\"));
//string FileRemove =Filefath.Replace("\\","")+"_"+ ChooseDeal[1] + "_有效.jpg";

//删除无效组相关图片
KP.listView1.Groups[1].Items[FRM_PIC.ListViewCount].Remove();
//删除imagelist中相关数据
KP.imageList1.Images.RemoveByKey(FRM_PIC.PicFath);
//修改文件名
FileInfo Finfo=new FileInfo(ChooseDeal[0] + "_" + ChooseDeal[1] + "_" + ChooseDeal[2]);
Finfo.MoveTo(ChooseDeal[0] + "_" + ChooseDeal[1] + "_有效.jpg");
//添加imagelist数据
KP.imageList1.Images.Add(KP.TempImage(ChooseDeal[0] + "_" + ChooseDeal[1] + "_有效.jpg"));
//添加到listview
ListViewItem item = new ListViewItem(ChooseDeal[0] + "_" + ChooseDeal[1] + "_有效.jpg", FRM_PIC.ListViewCount, KP.group1);
KP.listView1.Items.Add(item);

}
}


可是一直报“有另一进程正在使用该文件”错误!
各位同仁,哪里出错了?弄了一个晚上了!
...全文
213 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dolo1984 2009-02-06
  • 打赏
  • 举报
回复
重新生成imagelist?如果图片数量达到10000副,那速度不是超级慢?
xiaochao1987 2009-02-06
  • 打赏
  • 举报
回复
某个地方正在使用 没有关闭 IIS重启下试
wuyq11 2009-02-06
  • 打赏
  • 举报
回复
文件访问冲突。重新添加个
优途科技 2009-02-06
  • 打赏
  • 举报
回复
重新生成一个ImageList
cpio 2009-02-06
  • 打赏
  • 举报
回复
你需要重新生成一个ImageList,在里面添加不被移除的,然后设置listView1的ImageList

111,131

社区成员

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

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

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