博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gridview-
阅读量:4984 次
发布时间:2019-06-12

本文共 5460 字,大约阅读时间需要 18 分钟。

private void gridView1_RowCellClick(object sender, RowCellClickEventArgs e)        {
//及时更新点击行数据 this.gridView1.UpdateCurrentRow();GridView view = (GridView)sender;//点击行DataRow dr = view.GetFocusedDataRow();//设置列属性 gridView1.Columns[列名].OptionsColumn.AllowEdit = false; gridView1.Columns[列名].OptionsColumn.ReadOnly = true;}

 //http://www.cnblogs.com/wuhuacong/archive/2012/07/17/2595182.html

//将gridView1转换为datatable

 m_tblDataList = ((DataView)this.gridView1.DataSource).Table.Copy();

//添加表格列

m_tblDataList.Columns.Add(t_stockindetail.gwet, typeof(float));

//设置表格列默认值

m_tblDataList.Columns[t_stockindetail.gwet].DefaultValue = 0;

 //宽度自适应,可以出现滚动条

 this.gridView1.BestFitColumns();

//宽度自适应,但是不出现滚动条

 gridView1.OptionsView.ColumnAutoWidth = true;

namespace RowCellStyle{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            DataTable dt = new DataTable();            dt.Columns.Add("a");            dt.Columns.Add("s");            dt.Columns.Add("d");            dt.Columns.Add("f");            DataRow dr = dt.NewRow();            dt.Rows.Add(dr);            gridControl1.DataSource = dt;        }        private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)        {            try           {                               DataTable dt = (DataTable)gridControl1.DataSource;                if (!string.IsNullOrEmpty(dt.Rows[(dt.Rows.Count - 1)]["a"].ToString()))                {                    DataRow dr = dt.NewRow();                    dt.Rows.Add(dr);                    gridControl1.DataSource = dt;                }                                    bool isCheck = true;                    for (int i = 0; i < dt.Rows.Count -2; i++)                    {                        if (dt.Rows[i]["a"].ToString().Equals(dt.Rows[(dt.Rows.Count - 2)]["a"].ToString()))                        {                            MessageBox.Show("主键不能相同");                            isCheck = false;                            break;                        }                    }                                        if (!isCheck)                    {                        return;                    }                GridView view = (GridView)sender;                //获取选中行的列a的值                string str_a = view.GetFocusedRowCellValue("a").ToString();                SetGridStyle(str_a);            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());            }        }        private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)        {            try            {                GridView view = (GridView)sender;                //获取选中行的列a的值                string str_a = view.GetFocusedRowCellValue("a").ToString();                SetGridStyle(str_a);            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());            }        }        ///         /// 点击行的主key(主key为空不能编辑点击行其他内容,反之可以)        ///         /// 主Key值        private void SetGridStyle(string PrimarValue)        {            try            {                DataTable dt = (DataTable)gridControl1.DataSource;                gridView1.OptionsBehavior.Editable = true;                //如果主Key为空,设置除了主Key其他不可编辑                //如果主Key不为空,设置都可编辑                if (string.IsNullOrEmpty(PrimarValue))                {                    foreach (DataColumn item in dt.Columns)                    {                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.AllowEdit = false;                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.ReadOnly = true;                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.AllowFocus = false;                    }                    gridView1.Columns["a"].OptionsColumn.AllowFocus = true;                    gridView1.Columns["a"].OptionsColumn.AllowEdit = true;                    gridView1.Columns["a"].OptionsColumn.ReadOnly = false;                }                else                {                    foreach (DataColumn item in dt.Columns)                    {                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.AllowEdit = true;                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.ReadOnly = false;                        gridView1.Columns[item.ColumnName.ToString()].OptionsColumn.AllowFocus = true;                    }                }            }            catch (Exception ex)            {                MessageBox.Show(ex.ToString());            }        }        ///         /// 事件相当于一直在遍历所有cells        ///         ///         ///         private void gridView1_RowCellStyle(object sender, RowCellStyleEventArgs e)        {            DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;            //列名=a,值=1的标记为绿色            if (e.CellValue.ToString() == "1" && e.Column.FieldName.ToString().Equals("a"))            {                e.Appearance.BackColor = Color.FromArgb(128, 255, 128);                e.Column.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";                e.Column.Width = 250;                           }        }    }}

 

转载于:https://www.cnblogs.com/lhlong/p/4844646.html

你可能感兴趣的文章
Python开发 基礎知識 (未完代補)
查看>>
监听器的使用,以及实现, 测试
查看>>
java基础二 分支循环
查看>>
python--002--数据类型(list、tuple)
查看>>
把近期的小错误整理一下
查看>>
动态规划 —— 背包问题一 专项研究学习
查看>>
51nod 1571 最近等对 | 线段树 离线
查看>>
关于parseInt的看法
查看>>
从用户端到后台系统,严选分销教会我这些事
查看>>
数据分析融入至BI工具的新思路
查看>>
c#必会知识点
查看>>
网页使用MD5加密
查看>>
JS 基础
查看>>
HBase shell 中的十六进制数值表示
查看>>
Python3 中 configparser 模块解析配置的用法详解
查看>>
新手android环境搭建、debug调试及各种插件安装__图文全解
查看>>
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 win2008R2 X64 IIS7.5
查看>>
Diffuse贴图+Lightmap+Ambient
查看>>
矩阵树定理
查看>>
[算法]Evaluate Reverse Polish Notation
查看>>