关于如何获取GridView指定单元格背景颜色
2017-08-17 15:03
441 查看
GridView 根据GridRowCellStyle或者其他的设置来设置单元格的背景颜色,如果想获取指定的单元格的背景颜色,很可惜Dev并没有明显的提供相应的方法,虽然提供了一个隐藏性的方法,但是此方法只能获取当前显示界面的单元格信息。
如果查看源代码的人就会发现其实dev是有个方法是获取单元格的信息的:GetRowCellStyle,既然有提供就好办事了,这里利用反射的原理来获取私有方法。
代码如下:
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
var appobj = GetRowCellStyle((sender as GridView), e.RowHandle, e.Column);
labelControl1.BackColor = appobj.BackColor;
labelControl1.ForeColor = appobj.ForeColor;
}
/// <summary>
/// 获取指定单元格颜色
/// </summary>
/// <param name="rowHandle">指定行</param>
/// <param name="column">指定列</param>
/// <returns>指定单元格的appearance对象</returns>
public virtual DevExpress.Utils.AppearanceObject GetRowCellStyle(GridView view, int rowHandle, DevExpress.XtraGrid.Columns.GridColumn column)
{
System.Reflection.MethodInfo mi = view.GetType().GetMethod("GetRowCellStyle", BindingFlags.NonPublic | BindingFlags.Instance);
using (DevExpress.Utils.AppearanceObject app = new DevExpress.Utils.AppearanceObject())
{
app.Assign(view.Appearance.Row);
mi.Invoke(view, new object[] { rowHandle, column, DevExpress.XtraGrid.Views.Base.GridRowCellState.Default, app });
return app;
}
}
效果图:
如果查看源代码的人就会发现其实dev是有个方法是获取单元格的信息的:GetRowCellStyle,既然有提供就好办事了,这里利用反射的原理来获取私有方法。
代码如下:
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
var appobj = GetRowCellStyle((sender as GridView), e.RowHandle, e.Column);
labelControl1.BackColor = appobj.BackColor;
labelControl1.ForeColor = appobj.ForeColor;
}
/// <summary>
/// 获取指定单元格颜色
/// </summary>
/// <param name="rowHandle">指定行</param>
/// <param name="column">指定列</param>
/// <returns>指定单元格的appearance对象</returns>
public virtual DevExpress.Utils.AppearanceObject GetRowCellStyle(GridView view, int rowHandle, DevExpress.XtraGrid.Columns.GridColumn column)
{
System.Reflection.MethodInfo mi = view.GetType().GetMethod("GetRowCellStyle", BindingFlags.NonPublic | BindingFlags.Instance);
using (DevExpress.Utils.AppearanceObject app = new DevExpress.Utils.AppearanceObject())
{
app.Assign(view.Appearance.Row);
mi.Invoke(view, new object[] { rowHandle, column, DevExpress.XtraGrid.Views.Base.GridRowCellState.Default, app });
return app;
}
}
效果图:
相关文章推荐
- 如何获取 GridView 编辑状态下单元格里的值
- WPF中datagrid控件如何获得某个单元格并改变其背景颜色
- 如何获取 GridView 编辑状态下单元格里的值
- 关于在Android中如何点击GridView或者ListView中item子项达到修改子项背景的问题解决方案
- 2. 如何获取 GridView 编辑状态下单元格里的值?
- GridView控件点击单元格如何获取该列的列标题
- C# DEV 关于设置gridview 指定单元格字体为红色
- 如何获取GridView单元格的值
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何把处理好后的数据导出Excel文件中(含背景\字体颜色设置)
- EXTJS4:如何改变grid某一个单元格的背景颜色
- 如何获取 GridView 编辑状态下单元格里的值?
- 关于Excel的查询,可以通过格式查询(比如查找指定颜色的单元格)。
- Asp.Net利用Ajax实现Fullcalendar动态获取更新events并修改日程单元格背景颜色
- POI如何自定义单元格背景颜色
- *关于如何获取指定表的指定字段的数据类型的方法
- 关于如何在iframe中设置背景颜色为透明
- 动态改变Gridview单元格的背景颜色
- Android Robotium测试中如何获取当前某个文本的背景颜色
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何实现从字符串中提取需要的字符并赋值给指定单元格内
- 如何获取Button的背景颜色