实例介绍
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.Data;
using System.Collections;
using DevExpress.XtraGrid;
using System.Diagnostics;
using DevExpress.Utils.Drawing;
using System.Threading;
using System.Reflection;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using System.Runtime.InteropServices;
using DevExpress.XtraEditors.Repository;
using DevExpress.Utils.Menu;
using System.IO;
using System.Xml.Linq;
using DevExpress.XtraPrinting;
using DevExpress.XtraEditors.Drawing;
using DevExpress.XtraEditors.ViewInfo;
using DevExpress.Utils.Paint;
using System.ComponentModel;
using DevExpress.Utils.Win;
using DevExpress.Data.Filtering;
using System.Drawing.Drawing2D;
using DevExpress.XtraGrid.Views.Base;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
namespace GridSample
{
public partial class Form1 : Form
{
RepositoryItemCheckEdit chkedit = new RepositoryItemCheckEdit();
public Form1()
{
InitializeComponent();
BindingSource bs = new BindingSource();
bs.DataSource = CreateTable(5);
gridControl1.DataSource = bs;
}
private static DataTable CreateTable(int RowCount)
{
DataTable tbl = new DataTable();
tbl.Columns.Add("Name", typeof(string));
tbl.Columns.Add("ID", typeof(int));
tbl.Columns.Add("Number", typeof(int));
tbl.Columns.Add("Date", typeof(DateTime));
tbl.Columns.Add("Select", typeof(bool));
for (int i = 0; i < RowCount; i )
tbl.Rows.Add(new object[] { String.Format("Name{0}", i), i, 3 - i, DateTime.Now.AddDays(i), false });
return tbl;
}
protected void DrawCheckBox(Graphics g, Rectangle r, bool Checked)
{
DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo info;
DevExpress.XtraEditors.Drawing.CheckEditPainter painter;
DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs args;
info = chkedit.CreateViewInfo() as DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo;
painter = chkedit.CreatePainter() as DevExpress.XtraEditors.Drawing.CheckEditPainter;
info.EditValue = Checked;
info.Bounds = r;
info.PaintAppearance.ForeColor = Color.Black;
info.CalcViewInfo(g);
args = new DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs(info, new DevExpress.Utils.Drawing.GraphicsCache(g), r);
painter.Draw(args);
args.Cache.Dispose();
}
private void CView_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e)
{
if (e.Column == (sender as GridView).Columns["Select"])
{
e.Info.InnerElements.Clear();
e.Info.Appearance.ForeColor = Color.Blue;
e.Painter.DrawObject(e.Info);
DrawCheckBox(e.Graphics, e.Bounds, getCheckedCount() == gridView1.DataRowCount);
e.Handled = true;
}
}
int getCheckedCount()
{
int count = 0;
for (int i = 0; i < gridView1.DataRowCount; i )
{
if ((bool)gridView1.GetRowCellValue(i, gridView1.Columns["Select"]) == true)
count ;
}
return count;
}
void CheckAll()
{
for (int i = 0; i < gridView1.DataRowCount; i )
{
gridView1.SetRowCellValue(i, gridView1.Columns["Select"], true);
}
}
void UnChekAll()
{
for (int i = 0; i < gridView1.DataRowCount; i )
{
gridView1.SetRowCellValue(i, gridView1.Columns["Select"], false);
}
}
private void view_MouseDown(object sender, MouseEventArgs e)
{
if (e.Clicks == 1 && e.Button == MouseButtons.Left)
{
GridHitInfo info;
Point pt = gridView1.GridControl.PointToClient(Control.MousePosition);
info = gridView1.CalcHitInfo(pt);
if (info.InColumn && info.Column.FieldName == "Select")
{
if (getCheckedCount() == gridView1.DataRowCount)
UnChekAll();
else
CheckAll();
}
}
}
}
}
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论