C# DevExpress中 GridControl某列添加小图标(删除图标为例)
来源:互联网 发布:mysql 主从切换 编辑:程序博客网 时间:2024/05/16 09:45
效果如图:
首先导入命名空间
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.Grid;
using System.IO;
using System.Reflection;
定义一个PictureEdit
private PictureEdit _pedDelete; //删除
然后在 GridView1的MouseMove事件中判断。
//删除列表集合
private void GridView1_MouseMove(object sender, MouseEventArgs e)
{
GridView view = sender as GridView;
GridHitInfo htInfo = view.CalcHitInfo(e.X, e.Y);
if (!htInfo.InRowCell)
{
if (_pedDelete != null)
_pedDelete.Visible = false;
return;
}
string name = htInfo.Column.FieldName; //取得鼠标所在的列名
if ("OrderCode".Equals(name)) //判断是那一列中显示 删除图标
{
GridViewInfo vInfo = view.GetViewInfo() as GridViewInfo;
GridCellInfo cInfo = vInfo.GetGridCellInfo(htInfo);
if (_pedDelete == null)
{
_pedDelete = new PictureEdit(); //实例删除图片按钮
Stream stream = GetImgStream("GridImage.delete.gif"); //加载图片 加载图片函数在最后。
if (stream != null)
_pedDelete.Image = System.Drawing.Image.FromStream(stream);
_pedDelete.Click += new EventHandler(ImgDel_Click); //注册删除事件 具体实践如下
GridControl1.Controls.Add(_pedDelete);
}
Rectangle r = new Rectangle(cInfo.Bounds.Right - 16, cInfo.Bounds.Bottom - 15, 15, 15); //调整显示图片位置
_pedDelete.Bounds = r; // 设定位置
_pedDelete.Tag = htInfo.RowHandle;
r.X -= 16;
_pedDelete.Visible = true;
}
else
{
if (_pedDelete != null)
_pedDelete.Visible = false;
}
}
/// <summary>
/// 小图标删除点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param> protected void ImgDel_Click(object sender, EventArgs e)
{
int rowhandle = (int)(sender as PictureEdit).Tag;
if (MessageBox.Show(this, "确定删除吗?", "信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
{
GridView1.DeleteRow(rowhandle); //删除当前行,修改行的RowState 为Deleted
GridView1.UpdateCurrentRow();
GridView1.RefreshData(); //更新视图
}
}
/// <summary>
/// 得到项目中图片
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static Stream GetImgStream(string name)
{
Assembly asm = Assembly.GetEntryAssembly();
string asmName = asm.GetName().Name;
Stream noStream = asm.GetManifestResourceStream(asmName + ".Image." + name);
return noStream;
}
此效果可以延伸为 添加图标,编辑图标。三者可以同时存在,也可单个存在。就看大家如何用。
- C# DevExpress中 GridControl某列添加小图标(删除图标为例)
- Devexpress的gridcontrol控件 禁止删除列
- 为网站添加小图标--favicon
- 为网站添加小图标--favicon
- 为网站添加小图标--favicon
- 为jquery Easyui 添加小图标
- Gallery2添加删除图标
- 【DevExpress】GridControl添加按钮列并添加按钮事件【转】
- 在jQuery Easyui中添加小图标
- 在jQuery Easyui中添加小图标
- DevExpress控件GridControl列固定(冻结)
- MFC中为按钮添加图片,图标
- Ubuntu 中为应用程序添加快捷方式图标(eclipse为例)
- IOS添加小图标
- title添加小图标
- C# Devexpress 中GridControl多行数据拖拽
- 为控件添加图标
- 为按钮添加图标
- 使用JPA+Struts2+Spring 在 google Appengine开发应用
- 使用JPA+Struts2+Spring 在 google Appengine开发应用
- winform 计算器
- 第一章:计算机系统的基本知识
- vc6.0一个workspace包含多个项目
- C# DevExpress中 GridControl某列添加小图标(删除图标为例)
- 报销流程中的建表sql语句(mysql)
- flash读取Session
- Career Path
- ELF文件结构描述
- 三傻大闹宝莱坞 Three Idiots
- glib app代码使用valgrind进行内存检查的办法
- 价格查询网
- hdu 2425 Hiking Trip (dfs)