添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
using System.ComponentModel; using System.Windows.Forms; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.BandedGrid; using DevExpress.XtraEditors.Repository; namespace XtraGridDemo1 public partial class Form1 : DevExpress.XtraEditors.XtraForm public Form1() InitializeComponent(); //首先拖到窗体上一个GridControl,在表格上点击“Click here to change view”链接,在弹出菜单中选择“convert to”-->“AdvBandedGridView”。 InitGrid(); ///初始化表格 private void InitGrid() // advBandedGridView1是表格上的默认视图,注意这里声明的是:BandedGridView BandedGridView view = advBandedGridView1 as BandedGridView; view.BeginUpdate(); //开始视图的编辑,防止触发其他事件 view.BeginDataUpdate(); //开始数据的编辑 view.Bands.Clear(); //修改附加选项 view.OptionsView.ShowColumnHeaders = false; //因为有Band列了,所以把ColumnHeader隐藏 view.OptionsView.ShowGroupPanel = false; //如果没必要分组,就把它去掉 view.OptionsView.EnableAppearanceEvenRow = false; //是否启用偶数行外观 view.OptionsView.EnableAppearanceOddRow = true; //是否启用奇数行外观 view.OptionsView.ShowFilterPanelMode = ShowFilterPanelMode.Never; //是否显示过滤面板 view.OptionsCustomization.AllowColumnMoving = false; //是否允许移动列 view.OptionsCustomization.AllowColumnResizing = false; //是否允许调整列宽 view.OptionsCustomization.AllowGroup = false; //是否允许分组 view.OptionsCustomization.AllowFilter = false; //是否允许过滤 view.OptionsCustomization.AllowSort = true; //是否允许排序 view.OptionsSelection.EnableAppearanceFocusedCell = true; //??? view.OptionsBehavior.Editable = true; //是否允许用户编辑单元格 //添加列标题 GridBand bandID = view.Bands.AddBand("ID"); bandID.Visible = false; //隐藏ID列 GridBand bandName = view.Bands.AddBand("姓名"); GridBand bandSex = view.Bands.AddBand("性别"); GridBand bandBirth = view.Bands.AddBand("出生日期"); GridBand bandScore = view.Bands.AddBand("分数"); GridBand bandMath = bandScore.Children.AddBand("数学"); GridBand bandChinese = bandScore.Children.AddBand("语文"); GridBand bandEnglish = bandScore.Children.AddBand("英语"); GridBand bandSubTotal = bandScore.Children.AddBand("小计"); GridBand bandRemark = view.Bands.AddBand("备注"); //列标题对齐方式 bandName.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSex.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandBirth.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandScore.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandMath.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandChinese.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandEnglish.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandSubTotal.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; bandRemark.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; //模拟几个数据 List listDataSource = new List(); listDataSource.Add(new Record(1, "张三","男",Convert.ToDateTime("1989-5-6") ,115.5f,101,96,"")); listDataSource.Add(new Record(2, "李四", "女", Convert.ToDateTime("1987-12-23"), 92, 85, 87, "")); listDataSource.Add(new Record(3, "王五", "女", Convert.ToDateTime("1990-2-11"), 88, 69, 41.5f, "")); listDataSource.Add(new Record(4, "赵六", "男", Convert.ToDateTime("1988-9-1"), 119, 108, 110, "备注行")); //绑定数据源并显示 gridControl1.DataSource = listDataSource; gridControl1.MainView.PopulateColumns(); //[小计]这一列因为没绑定数据源,所以需要手动添加 //(有点复杂,慢慢看吧) string[] fieldNames = new string[] { "SubTotal" }; GridColumn column; //声明单列 column = view.Columns.AddField(fieldNames[0]); //添加一个数据字段 column.VisibleIndex = view.Columns.Count -1; //设置该列在编辑视图时的显示位置(倒数第二列) column.UnboundType = DevExpress.Data.UnboundColumnType.Decimal; column.OptionsColumn.AllowEdit = false; //此列不可编辑 column.Visible = true; view.Columns.Add(column); //视图中添加一列 //绑定事件,当[分数]改变时[小计]也跟着变 //(好像只有在绑定事件里才能改变该单元格数值,直接修改无效) view.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(advBandedGridView1_CustomUnboundColumnData); //[性别]列绑定ComboBox RepositoryItemComboBox riCombo = new RepositoryItemComboBox(); riCombo.Items.AddRange(new string[] {"男", "女"}); gridControl1.RepositoryItems.Add(riCombo); view.Columns["Sex"].ColumnEdit = riCombo; //[出生年月]列绑定Date RepositoryItemDateEdit riDate = new RepositoryItemDateEdit(); gridControl1.RepositoryItems.Add(riDate); view.Columns["Birth"].ColumnEdit = riDate; //[分数]列绑定SpinEdit RepositoryItemSpinEdit riSpin = new RepositoryItemSpinEdit(); gridControl1.RepositoryItems.Add(riSpin); view.Columns["Math"].ColumnEdit = riSpin; view.Columns["Chinese"].ColumnEdit = riSpin; view.Columns["English"].ColumnEdit = riSpin; //[备注]列绑定MemoExEdit RepositoryItemMemoExEdit riMemoEx = new RepositoryItemMemoExEdit(); gridControl1.RepositoryItems.Add(riMemoEx); view.Columns["Remark"].ColumnEdit = riMemoEx; //小计列添加汇总 view.OptionsView.ShowFooter = true; //显示表格页脚 view.Columns["SubTotal"].SummaryItem.FieldName = "SubTotal"; view.Columns["SubTotal"].SummaryItem.DisplayFormat = "{0:f2}"; view.Columns["SubTotal"].SummaryItem.SummaryType = DevExpress.Data.SummaryItemType.Average; //将标题列和数据列对应 view.Columns["ID"].OwnerBand = bandID; view.Columns["Name"].OwnerBand = bandName; view.Columns["Sex"].OwnerBand = bandSex; view.Columns["Birth"].OwnerBand = bandBirth; view.Columns["Math"].OwnerBand = bandMath; view.Columns["Chinese"].OwnerBand = bandChinese; view.Columns["English"].OwnerBand = bandEnglish; view.Columns["SubTotal"].OwnerBand = bandSubTotal; view.Columns["Remark"].OwnerBand = bandRemark; view.EndDataUpdate();//结束数据的编辑 view.EndUpdate(); //结束视图的编辑 // 计算小计 private float calcSubTotal(float math, float chinese, float english) return math + chinese + english; private void advBandedGridView1_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e) ColumnView colView = sender as ColumnView; if (e.Column.FieldName == "SubTotal" && e.IsGetData) e.Value = calcSubTotal( Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.Columns["Math"])), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.Columns["Chinese"])), Convert.ToSingle(colView.GetRowCellValue(e.RowHandle, colView.Columns["English"]))); #region 运行时绑定到实现Ilist接口的数据源 public class Record int id; DateTime birth; string name, sex, remark; float math, chinese, english; public Record(int id, string name, string sex, DateTime birth, float math, float chinese, float english, string remark) this.id = id; this.name = name; this.sex = sex; this.birth = birth; this.math = math; this.chinese = chinese; this.english = english; this.remark = remark; public int ID { get { return id; } } public string Name get { return name; } set { name = value; } public string Sex get { return sex; } set { sex = value; } public DateTime Birth get { return birth; } set { birth = value; } public float Math get { return math; } set { math = value; } public float Chinese get { return chinese; } set { chinese = value; } public float English get { return english; } set { english = value; } public string Remark get { return remark; } set { remark = value; } #endregion

http://www.cnblogs.com/habin/archive/2009/04/24/1442613.html

转载于:https://www.cnblogs.com/IceNewMan/p/9900264.html

Devexpress使用之:GridControl控件Devexpress系列控件功能很强大,使用起来也不太容易,我也是边摸索边使用,如果有时间我会把常用控件的使用方法整理出来的。using System;using System.Collections.Generic;using System.ComponentModel;using Syste... using System.ComponentModel; using System.Windows.Forms; using DevExpress .Xtra Grid .Columns; using DevExpr...
通过google搜到一些dev的官方论坛,大致实现了我想要的效果:只能输入正整数。设置方法如下:             spinEdit_DailyInterval.Properties.IsFloatValue = false; spinEdit_DailyInterval.Properties.Increment = 1; spinEdit_DailyInterval.Properties
https://docs. devexpress .com/WindowsForms/114637/ control s-and-libraries/data- grid /views/banded- grid -views Banded Grid Views Jun 19, 2019 5 min to read
一.以 DevExpress .Xtra Grid .Views.Banded Grid .AdvBanded Grid View advBanded Grid View3 为实例 .根据不同条件实现AdvBanded Grid View的扩展和收缩 cbbExecuteState.SelectedIndexChanged += cbbExecuteState_SelectedIndexChanged; vo...
最近公司计划按业务domain拆分系统,原有系统客户端用到 DevExpress 组件,报表展示都是通过 Grid Control 绑定DataTable实现。考虑到和服务端交互数据的性能问题,在项目升级的同时,想把DataTable替换掉。 Grid Control 绑定IList比较简单,但是在调试主从表效果时,一直没能达到预期效果,子列表的列名一直显示相应类的字段名称。这个问题令人大伤脑筋,调试过程着实花了一番功夫,但是问题的解决方法却让人大跌眼镜。 考虑到关于这个问题在网上比较难找,所以这里做了个分享,希望对碰到同样问题的朋友有所帮助。
DevExpress 控件 的功能比较强大,是全球知名 控件 开发公司,对于开发B/S或C/S都非常出色,可以实现很炫且功能强大的效果。 DevExpress Winform常用 控件 是本人在前几个项目的一些笔记,在实际的项目中可能会经常涉及到,所以对常用 控件 的属性、方法、事件都列举出来。 在Visual Stuodio中添加 DevExpress 控件 1. 使用 控制台进入 DevExpress 安装目录(输入命令): cdD:\Program Files (x86)\DevExpre...
首先是自动换行,可以创建一个repositoryItemMemoEdit 并绑定到需要换行的列中 再设置一下repositoryItemMemoEdit高度自适应,这样子就完成了自动换行了 repositoryItemMemoEdit1.AutoHeight = true; 之后需要 使用 事件advBanded Grid View1_CalcRowHeight。这个事件是让我们可以单独设置...