• gridview-


     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());
                }
            }
            /// <summary>
            /// 点击行的主key(主key为空不能编辑点击行其他内容,反之可以)
            /// </summary>
            /// <param name="PrimarValue">主Key值</param>
            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());
                }
            }
            /// <summary>
            /// 事件相当于一直在遍历所有cells
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            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;
                   
                }
            }
        }
    }
  • 相关阅读:
    Swing中如何比较好的判断鼠标左键双击
    学习rsyslog
    学习rsync
    在线手册
    Linux开源镜像站大全
    Linux命令
    Android使用sqlite数据库的使用
    Android学习笔记-listview实现方式之BaseAdapter
    Android学习笔记-保存数据的实现方法2-SharedPreferences
    Android学习笔记-获取手机内存,SD卡存储空间。
  • 原文地址:https://www.cnblogs.com/lhlong/p/4844646.html
Copyright © 2020-2023  润新知