亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

在GridControl控件上綁定圖片的幾種操作方式詳解

2019-10-29 21:01:11
字體:
來源:轉載
供稿:網友

我們知道,基于DevExpress的開發Winform的項目界面的時候,GridControl控件是經常用來綁定數據的,一般以常規的字符內容為主,有時候也會有圖片的顯示需要,那么如果顯示圖片,我們應該如何實現呢?本篇隨筆介紹基于原生GridControl控件的圖片綁定顯示操作和基于我封裝的分頁控件(封裝GridControl的分頁控件)兩種圖片綁定顯示的操作。

1、基于原生的GridControl控件圖片綁定

GridControl,控件,綁定圖片

綁定圖片,一般我們可以在單元格里面綁定byte[]類型或者Image類型,那么控件就會自動顯示圖片出來,當然我們也可以自定義對圖片路徑轉換為圖片然后顯示的,不過就是額外需要增加一些處理而已。

本例子針對這三種方式分別進行介紹,圖片的綁定操作。

為了方便演示,我們創建一個菜單對象類,然后構建一些數據用于列表的綁定操作,如下代碼所示。

/// <summary>  /// 模擬一個菜單的對象,包括各種類型的圖片信息  /// </summary>  public class MenuInfo  {    /// <summary>    /// 編號    /// </summary>    public string ID { get; set; }    /// <summary>    /// 圖標名稱    /// </summary>    public string Name { get; set; }    /// <summary>    /// 圖片路徑    /// </summary>    public string ImageFilePath {get;set;}    /// <summary>    /// 圖標字節    /// </summary>    public virtual byte[] EmbedIcon { get; set; }    /// <summary>    /// 圖標圖片對象    /// </summary>    public Image ImageIcon { get; set; }    /// <summary>    /// 構造函數    /// 為了展示的方便,在構造函數里面構造相應的數據    /// </summary>    public MenuInfo()    {      this.ID = Guid.NewGuid().ToString();      this.Name = "測試圖片菜單";      this.ImageFilePath = Path.Combine(System.Environment.CurrentDirectory, "app.ico");      if (File.Exists(this.ImageFilePath))      {        this.EmbedIcon = FileUtil.FileToBytes(this.ImageFilePath);        this.ImageIcon = ImageHelper.ImageFromUrl(this.ImageFilePath);      }    }

創建GridColumn的時候,我們可以利用GridVIew的擴展函數CreateColumn進行創建幾個不同的列,如下代碼所示。

public partial class FrmRepositoryItemImageEdit : BaseForm  {    public FrmRepositoryItemImageEdit()    {      InitializeComponent();      CreateGridView();    }    /// <summary>    /// 創建gridView1列表所需顯示的列    /// </summary>    private void CreateGridView()    {      //創建一個隱藏的ID列      this.gridView1.CreateColumn("ID", "ID").Visible = false;      //串一個名稱的列,并指定寬度      this.gridView1.CreateColumn("Name", "名稱", 150);      //創建一個圖片路徑的列,并指定它的編輯控件類型為RepositoryItemImageEdit      //并為這個列實現ParseEditValue的方法,用于解析路徑為具體的圖片顯示      this.gridView1.CreateColumn("ImageFilePath", "圖片路徑綁定", 100).CreateImageEdit().ParseEditValue += (s, e) =>      {        if (e.Value != null && e.Value is string && e.Value.ToString() != string.Empty)        {          e.Value = Image.FromFile(string.Concat(e.Value));          e.Handled = true;        }      };      //創建圖片字節的列,用于顯示圖片      this.gridView1.CreateColumn("EmbedIcon", "圖片字節綁定", 100);      //創建圖片對象的列,用于顯示圖片      this.gridView1.CreateColumn("ImageIcon", "圖片對象綁定", 100);    }

上面代碼是創建GridView所需要顯示的列信息,那么我們準備好數據源綁定到列表控件上就可以了,如下代碼所示。

/// <summary>/// 綁定列表數據/// </summary>private void BindData(){  //構造只有一個記錄的集合  List<MenuInfo> menuList = new List<MenuInfo>()  {    new MenuInfo()  };  //綁定數據源到列表控件上  this.gridControl1.DataSource = menuList;} 

2、基于分頁控件的圖片綁定

GridControl,控件,綁定圖片

很多時候,我們需要對數據庫的數據進行分頁顯示,以提高顯示的速度和效率,那么利用分頁控件就可以獲得很多這樣統一的界面和高效率顯示數據的好處,基于分頁控件的處理本質上和上面的過程差不多,不過處理的代碼需要變化一下,從而可以正常的實現圖片綁定顯示操作。

/// <summary>  /// 基于分頁控件的圖片顯示案例  /// </summary>  public partial class FrmRepositoryItemImageEdit2 : BaseForm  {    public FrmRepositoryItemImageEdit2()    {      InitializeComponent();      CreateGridView();    }    /// <summary>    /// 創建gridView1列表所需顯示的列    /// </summary>    private void CreateGridView()    {      this.winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged);      this.winGridViewPager1.OnRefresh += new EventHandler(winGridViewPager1_OnRefresh);      this.winGridViewPager1.AppendedMenu = this.contextMenuStrip1;      this.winGridViewPager1.ShowLineNumber = true;      this.winGridViewPager1.BestFitColumnWith = false;//是否設置為自動調整寬度,false為不設置      this.winGridViewPager1.gridView1.DataSourceChanged += new EventHandler(gridView1_DataSourceChanged);    }    /// <summary>    /// 綁定數據后,分配各列的寬度    /// </summary>    private void gridView1_DataSourceChanged(object sender, EventArgs e)    {      //對圖片路徑的列,重新使用RepositoryItemPictureEdit類型      //然后對該列的控件的ParseEditValue和FormatEditValue函數進行實現,從而實現路徑到圖片的顯示      var edit = this.winGridViewPager1.gridView1.Columns.ColumnByFieldName("ImageFilePath").CreatePictureEdit();            edit.ParseEditValue += (s, se) =>      {        if (se.Value != null && se.Value.GetType() == typeof(string) && se.Value.ToString() != string.Empty)        {          if (File.Exists(string.Concat(se.Value)))          {            var picture = ImageHelper.ImageFromUrl(string.Concat(se.Value));            se.Value = picture;            se.Handled = true;          }        }      };      edit.FormatEditValue += (s, se) =>      {        if (File.Exists(string.Concat(se.Value)))        {          var picture = ImageHelper.ImageFromUrl(string.Concat(se.Value));          se.Value = picture;          se.Handled = true;        }      };      if (this.winGridViewPager1.gridView1.Columns.Count > 0 && this.winGridViewPager1.gridView1.RowCount > 0)      {        //統一設置100寬度        foreach (DevExpress.XtraGrid.Columns.GridColumn column in this.winGridViewPager1.gridView1.Columns)        {          column.Width = 120;        }        //可特殊設置特別的寬度        GridView gridView = this.winGridViewPager1.gridView1;        if (gridView != null)        {          //gridView.SetGridColumWidth("Note", 200);        }      }    }

而在分頁控件的數據綁定的時候,我們指定列名的中文名即可,如下代碼所示

/// <summary>    /// 綁定列表數據    /// </summary>    private void BindData()    {      #region 添加別名解析      this.winGridViewPager1.DisplayColumns = "Name,ImageFilePath,EmbedIcon,ImageIcon";      this.winGridViewPager1.AddColumnAlias("ID", "編號");      this.winGridViewPager1.AddColumnAlias("Name", "名稱");      this.winGridViewPager1.AddColumnAlias("ImageFilePath", "圖片路徑綁定");      this.winGridViewPager1.AddColumnAlias("EmbedIcon", "圖片字節綁定");      this.winGridViewPager1.AddColumnAlias("ImageIcon", "圖片對象綁定");      this.winGridViewPager1.gridView1.OptionsBehavior.Editable = true;      this.winGridViewPager1.gridView1.OptionsBehavior.ReadOnly = false;      #endregion      //構造只有一個記錄的集合      List<MenuInfo> menuList = new List<MenuInfo>()      {        new MenuInfo()      };      this.winGridViewPager1.DataSource = menuList;    }

以上就是基于GridControl控件上綁定圖片的幾種操作方式,方便我們在項目中參考使用。希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲深夜福利在线| 亚洲视频在线免费观看| 日韩福利视频在线观看| 国产精品入口福利| 国自产精品手机在线观看视频| 欲色天天网综合久久| 国产亚洲精品久久久久久牛牛| 91最新国产视频| 日韩专区在线观看| 日韩中文在线视频| 人九九综合九九宗合| 久久久精品国产网站| 欧洲亚洲免费视频| 欧美视频二区36p| 青青青国产精品一区二区| 亚洲色图五月天| 欧美高清视频在线观看| 亚洲第一网中文字幕| 久久久久久久久久国产精品| 欧洲s码亚洲m码精品一区| 福利一区视频在线观看| 成人激情视频小说免费下载| 久久精品一本久久99精品| 亚洲一区二区三区成人在线视频精品| 91在线视频九色| 欧美精品18videos性欧美| 色哟哟入口国产精品| 97精品久久久中文字幕免费| 亚洲日本欧美日韩高观看| 国自产精品手机在线观看视频| 国内揄拍国内精品少妇国语| 亚洲aⅴ日韩av电影在线观看| 欧美激情一区二区三区在线视频观看| 92福利视频午夜1000合集在线观看| 国产精品久久久久久久久粉嫩av| 欧美在线激情视频| 91九色综合久久| 中文字幕日韩欧美| 亚洲欧美日韩成人| 日韩av电影在线播放| 成人激情视频在线播放| 国产精品久久久久aaaa九色| 亚洲а∨天堂久久精品9966| 中文字幕一区二区三区电影| 亚洲精品视频播放| 欧美一区二区三区精品电影| 亚洲色图在线观看| 亚洲最大的网站| 欧美大片在线免费观看| 国产91九色视频| 精品爽片免费看久久| 国内久久久精品| 91免费国产网站| 日韩av一卡二卡| 欧美激情aaaa| 韩国v欧美v日本v亚洲| 91精品视频免费观看| 欧美日韩国产在线播放| 久久精品人人爽| 精品久久久久久久久久久久久| 亚洲欧美精品一区二区| 欧美性猛交xxxx免费看久久久| 欧美激情亚洲另类| 在线日韩中文字幕| 久久久国产影院| 国产精品一区久久| 91九色在线视频| 91在线无精精品一区二区| 国产午夜精品久久久| 久久精品国产免费观看| 91系列在线观看| 国产精品福利网站| 日韩黄色av网站| 亚洲精品二三区| 欧美激情一级欧美精品| 国产成人拍精品视频午夜网站| 国产成人激情视频| 欧美成人精品不卡视频在线观看| 国产日韩欧美在线播放| 欧美日韩成人在线播放| 国产精品av电影| 国产精品国产三级国产aⅴ浪潮| 丝袜一区二区三区| 亚洲综合一区二区不卡| 久久国产精品久久久| 亚洲深夜福利视频| 91精品国产九九九久久久亚洲| 亚洲午夜性刺激影院| 九九精品在线播放| 疯狂欧美牲乱大交777| 午夜精品一区二区三区在线视| 丝袜美腿亚洲一区二区| 亚洲第一区中文字幕| 久久艹在线视频| 国产91色在线|免| 亚洲精品美女久久久久| 精品亚洲男同gayvideo网站| 8090成年在线看片午夜| 精品av在线播放| 日韩免费中文字幕| 国产亚洲精品高潮| 欧美专区在线观看| 欧美日韩中国免费专区在线看| 最近日韩中文字幕中文| 欧美日韩电影在线观看| 国产精品成人一区二区三区吃奶| 午夜精品在线观看| 亚洲在线视频福利| 亚洲国产精品99久久| 亚洲色图狂野欧美| 国产精品亚洲欧美导航| 97成人精品视频在线观看| 亚洲美女av网站| 日韩不卡中文字幕| 丰满岳妇乱一区二区三区| 国产91热爆ts人妖在线| 国产精品欧美日韩| 国产精品美女免费| 91精品国产自产91精品| 欧美重口另类videos人妖| 色综合天天狠天天透天天伊人| 亚洲色图第一页| 久久97久久97精品免视看| 国产欧美在线观看| 国产精品中文久久久久久久| 国产精品丝袜久久久久久不卡| 亚洲专区在线视频| 国产不卡av在线| 欧美成人午夜激情| 亚洲国产精品字幕| 日韩国产精品亚洲а∨天堂免| 午夜精品三级视频福利| 亚洲欧美成人一区二区在线电影| 欧美日韩免费区域视频在线观看| 韩国美女主播一区| 日韩精品视频中文在线观看| 欧美午夜片在线免费观看| 国产在线视频91| 久久99热精品这里久久精品| 欧美xxxx18性欧美| 国产成人免费91av在线| 亚洲经典中文字幕| 国产精品美女主播在线观看纯欲| 色婷婷综合久久久久| 欧美做爰性生交视频| 日韩在线视频网| 亚洲国产精品久久久久| 亚洲激情在线观看视频免费| 亚洲欧洲激情在线| 欧美成人性生活| 欧美日韩美女在线| 亚州国产精品久久久| 亚洲第一页自拍| 亚洲午夜性刺激影院| 久久精品国产亚洲精品| 亚洲国产精品va在线看黑人动漫| 国产精品三级久久久久久电影| 亚洲欧美制服另类日韩| 日韩精品在线观看视频| 国内精品小视频在线观看| 最近2019年好看中文字幕视频| 人体精品一二三区| 亚洲一区二区三区视频| 日韩在线视频导航|