免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
DataGridView控件中顯示圖片及其注意事項

windows Forms編程里面有一個DataGridView控件,它不光是可以顯示數(shù)據(jù),可以顯示按鈕,復(fù)選框,甚至還可以顯示圖片。這些圖片可以來自于數(shù)據(jù)庫(用二進制的方式存儲的),也可以來自文件系統(tǒng)。下面是一個例子

【假設(shè)你有一個windows程序,并且窗體上有一個DataGridView控件,這個控件只有一個列(名稱為Image),類型為DataGridViewImageColumn】

 

public Form1()
{
    InitializeComponent();
    GetData();

}

private void GetData()
{
    foreach (string s in Directory.GetFiles(@"E:\My Documents\圖片收藏\表情","*.gif"))
    {
        this.demoGrid.Rows.Add(s);//注意,雖然字段類型是Image,但我們這里只給它傳一個圖片路徑過去,真正讀取圖片是由下面的事件處理程序做的
    }
}

 

/// <summary>
/// 這個事件就在嘗試對單元格進行格式化的時候觸發(fā)。在這里設(shè)置真正的圖片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void demoGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (demoGrid.Columns[e.ColumnIndex].Name.Equals("Image"))
    {
        string path = e.Value.ToString();
        e.Value = GetImage(path);
    }
}

 

public System.Drawing.Image GetImage(string path)
{
    return System.Drawing.Image.FromFile(path);
}

以上的代碼確實可以實現(xiàn)我們的目的,就是從一個目錄中把所有的gif圖片讀取出來,然后顯示在DataGridView上面。如下圖所示

但是用Image.FromFile這個語法加載圖片有一個很大的問題:該文件就被我們當(dāng)前進程鎖定了。不光是別的程序無法使用它,如果當(dāng)前程序需要將其刪除(例如我們想刪除某行數(shù)據(jù)的同時把圖片也刪除掉),都會報告一個錯誤

為了解決這個問題,可以修改一下GetImage方法。如下面所示

public System.Drawing.Image GetImage(string path)
{
    System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
    System.Drawing.Image result = System.Drawing.Image.FromStream(fs);

    fs.Close();

    return result;

}

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
DataGridView添加右鍵菜單等技巧
c# 給圖片添加文字水印
C#圖片處理高級應(yīng)用(裁剪,縮放,清晰度,水印) - 吳劍-WEB應(yīng)用 - 博客園
怎樣用 c# GDI 截取一張圖片的一部分,然后再替換另一張圖片的一部分
c# 改變圖片的大?。╳,h)
.Net6 WebApi圖片預(yù)覽和下載
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服