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.htmlhtml
//將gridView1轉換爲datatablethis
m_tblDataList = ((DataView)this.gridView1.DataSource).Table.Copy();spa
//添加表格列code
m_tblDataList.Columns.Add(t_stockindetail.gwet, typeof(float));orm
//設置表格列默認值
m_tblDataList.Columns[t_stockindetail.gwet].DefaultValue = 0;htm
//寬度自適應,能夠出現滾動條blog
this.gridView1.BestFitColumns();事件
//寬度自適應,可是不出現滾動條string
gridView1.OptionsView.ColumnAutoWidth = true;it
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; } } } }