主要功能是使用與結合顯示圖片列表,.=true
先是綁定,讀取本地目錄中是圖片,并顯示出來,代碼如下:
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(scanPath);
System.IO.FileInfo[] strs = dir.GetFiles();
int Count = 0;
int fileCount = strs.Length;
files = new string[fileCount];
foreach (System.IO.FileInfo file in strs)
{
//將掃描路徑下的圖片轉移到本地文件夾中,并重新命名
string newFileName = StringTool.getOnlyKey() + file.Name; //生成新的圖片名稱
files[Count] = getImagePath + "\\" + newFileName;
System.IO.File.Copy(scanPath + "\\" + file.Name, ftpPath + "\\" + newFileName);
string[] li = file.Name.Split('.');
if (li[1].ToString().ToLower() != "jpg")
continue;
System.Drawing.Image img = System.Drawing.Image.FromFile(files[Count]);
System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
img.Dispose();
this.imageList1.Images.Add(files[Count], bmp);
//this.imageList1.Images.Add(Image.FromFile(this.files[Count]));
this.listViewEx1.Items.Add(this.files[Count].Substring(this.files[Count].LastIndexOf(@"\") + 1),listViewEx1.Items.Count-1);
this.listViewEx1.Items[listViewEx1.Items.Count - 1].ImageIndex = this.imageList1.Images.Count - 1;
Count++;
}
以上代碼,可以正常顯示出圖片,可以正常顯示出來。
那么問題來了,客戶需要選中圖片后,邊框要突出高亮出來。所以我就添加了事件,來將選中的邊框顏色改為紅色,代碼如下
private void listViewEx1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
try
{
Graphics g = e.Graphics;
rect = Rectangle.Empty;
Image image = imageList1.Images[e.Item.ImageIndex];
rect = new Rectangle(e.Bounds.Left, e.Bounds.Top, image.Width, image.Height);
g.DrawImage(image, rect);
g.DrawRectangle(new Pen(Color.White, 3), rect);
if ((e.State & ListViewItemStates.Selected) == ListViewItemStates.Selected)
{
g.DrawRectangle(new Pen(Color.Red, 3), rect);
}
}
catch
{ }
}
添加這段事件的代碼后,問題來了ztree 復選框沒顯示,除了圖片能顯示出來,點擊后邊框也能變成紅色,但是不顯示了!!!
請教大蝦們,這里要如何修改ztree 復選框沒顯示,使正常顯示出來?,.已經為true了。