[转载]DEV控件:gridControl常用属性设置
1.隱藏最上面的GroupPanel
 ? gridView1.OptionsView.ShowGroupPanel=false;
2.得到當前選定記錄某字段的值
 ? sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();
3.數據只讀
 ? gridView1.OptionsBehavior.Editable=false;
4.不顯示MasterDetailView
 ? gridView1.OptionsDetail.EnableMasterViewMode=false;
5.修改最上面的GroupPanel內容
 ?? gridView1.GroupPanelText="柳生飄絮";
6.設置數據源:
 ?? gridControl1.DataSource = dt;
 ?? 綁定每一列的FiledName--屬性
 ?? 對于Oracle數據庫,所有的在設計器里寫的程序中的字段名必須大寫,否則可能綁定不上字段,sqlserver沒有這個限制.
7.讀寫拷貝權限設置
 ? 只讀不可拷貝:
 ??? ColumnViewOptionsBehavior.Editable = False
? 只讀可拷貝:
 ??? ColumnViewOptionsBehavior.Editable = True
 ??? OptionsColumn.AllowEdit = True
 ??? OptionsColumn.ReadOnly = True
? 可編輯:
 ??? ColumnViewOptionsBehavior.Editable = True
 ??? OptionsColumn.AllowEdit = True
 ??? OptionsColumn.ReadOnly = False
8.模板列的設置:
 ? 到Columns中,在他的屬性中找到ColumnEdit.
 ? 以LookUpEdit為例:
 ? 首先從Designer左邊菜單In-Place Editor Repository中添加LookUpEdit.取名為Re1.然后.在他的Columns屬性中添加3列.Caption依次為:編號,姓名,性別.FieldName依次為:FID,FNAME,FSEX.然后將Re1的NullText設置成空.
   AutoSearchColumnIndex屬性設置為2.ImmediatePopup屬性設置為True.
   SearchMode設置為OnlyInPopup.
   然后將這個模板列附加到我們上面提到的列1(也就是將列1的ColumnEdit屬性設成Re1)
   最后我們還要在代碼里面給Re1綁定數據源和顯示項.
 ???????? Re1.DataSource = DALUse.Query("select fid,fname,fsex from dual").Tables[0];
 ???????? Re1.DisplayMember = "FSEX";
 ???????? Re1.ValueMember = "FNAME";
?
 9.設某一列文字和標題局中顯示?????????????????
 ?? gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
 ?? gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
?
 10.去掉某一列上面的自動篩選功能(Filter)?????????????????
 ?? gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;
 ?? gridView1.Columns[0].OptionsFilter.AllowFilter = false;???????????????
 ?? gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false;
?
 11.設置凍結列(左凍結)
 ? gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;
?
 12.得到單元格數據(0行0列)
 ?? string ss=gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);
 ?? string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);
?
 13.設置單元格數據(將0行0列的單元格賦值123)
 ?? gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");
?
 13.手動添加dev的列
 ? DevExpress.XtraGrid.Columns.GridColumn Col1=new DevExpress.XtraGrid.Columns.GridColumn ();
 ? Col1.FieldName="FID";
 ? Col1.Visible=true;
 ? Col1.VisibleIndex=gridView1.Columns.Count;
 ? gridView1.Columns.Add(Col1);
 14.設置自動增加的行號,需要先添加給gridview添加事件CustomDrawRowIndicator
??? private void gridview_CustomDrawRowIndicator(object sender,??????????????????????????? DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
 ??? {
 ??????? if (e.Info.IsRowIndicator && e.RowHandle >= 0)
 ??????????????? e.Info.DisplayText = (e.RowHandle + 1).ToString();
 ??? }
15.刪除: (修改了dgvdel里的datagridviewdel方法)
 ??? public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv)
 ??? {
 ?????? if (MessageBox.Show("你確定要刪除選中的記錄嗎?", "刪除提示", MessageBoxButtons.YesNo,?????????????? MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes)
 ?????? {
 ?????????? int iSelectRowCount = Mydgv.SelectedRowsCount;
 ?????????? if (iSelectRowCount > 0)
 ?????????? {
 ???????????? Mydgv.DeleteSelectedRows();
 ?????????? }
 ?????? }
 ??? }
 ?
 16. 新增: (對于新增,其本身的AddNewRow方法就可以做到)
 ??? private void btn_add_Click(object sender, EventArgs e)
 ??? {?
 ?????? gridView1.AddNewRow();??
 ???? }
 ??? 具體如果對于新加行還有什么特別的設置,可以在它gridView1_InitNewRow事件中填寫:
 ??? private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
 ??? {
 ?????? ColumnView View = sender as ColumnView;
 ?????? View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //復制最后一行的數據到新行
??????????? View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //復制最后一行的數據到新行
??? }
?
 17. 保存 (第三方控件提供的RefreshData和RefreshDataSource方法對于保存數據都不好使,最后還是使用了Dgvsave的datagridviewsave方法,用這個方法就可以)
 18.特效:gridcontrol中有5種view 型式,普通的是gridview,然后分別為cardview、BandedView、Advanced BandedView、LayoutView;共5種。
 ? 1)、view組中把OptionView下的viewmode 設置成“Carousel”就達到這種“旋轉木馬”式的gridcontrol view 特效了
 ? 2)、layoutView1.OptionsCarouselMode.PitchAngle 這個屬性決定“旋轉木馬”的pitch angle 螺距角; 螺旋角; 螺旋升角; 俯仰角; 傾角; 節錐半角
 ? 3)、Roll Angle 屬性決定著 傾側角度
 ? 4)、指定數據源,顯示數據:
 ? //顯示數據
 ??????? private void showData(List<Employee > list)
 ??????? {
 ??????????? DataTable dt = new DataTable("OneEmployee");
 ??????????? dt.Columns.Add("Caption", System.Type.GetType("System.String"));
 ??????????? dt.Columns.Add("Department", System.Type.GetType("System.String"));
 ??????????? dt.Columns.Add("PhotoName", System.Type.GetType("System.Byte[]"));
 ??????????? for (int i = 0; i < list.Count; i++)
 ??????????? {
 ??????????????? DataRow dr = dt.NewRow();
 ??????????????? dr["Caption"] = list[i].Name;
 ??????????????? dr["Department"] = list[i].Department;
 ??????????????? string imagePath = @"D:C#photos" + list[i].PhotoPath;
 ??????????????? dr["PhotoName"] = getImageByte(imagePath);
 ??????????????? dt.Rows.Add(dr);
 ??????????? }
 ??????????? gridControl1.DataSource = dt;
 ??????? }
 ??????? //返回圖片的字節流byte[]
 ??????? private byte[] getImageByte(string imagePath)
 ??????? {
 ??????????? FileStream files = new FileStream(imagePath, FileMode.Open);
 ??????????? byte[] imgByte = new byte [files.Length ];
 ??????????? files.Read(imgByte, 0, imgByte.Length);
 ??????????? files.Close();
 ??????????? return imgByte;
 ??????? }
19.檢查數據的有效性
 ? 在gridview的ValidateRow事件中加入檢查代碼:
 ? #region 檢查數據
 ? private void gridView1_ValidateRow(object sender, ValidateRowEventArgs e)
 ? {
 ? GridView view = sender as GridView;
 ? view.ClearColumnErrors();
? if (view.GetRowCellValue(e.RowHandle, "ReceiveDate") == DBNull.Value)
 ? {
 ? e.Valid = false;
 ? view.SetColumnError(view.Columns["ReceiveDate"], "必須指定日期");
 ? }
? }
 ? #endregion
 ? 調用gridview.UpdateCurrentRow()方法執行檢查
 最常用的DevExpress Winform 4個代碼片段:
一 、GridControl的刪除操作
private void rILinkEditInfoDel_Click(object sender, EventArgs e)
 {
 ???? if (XtraMessageBox.Show("請確定是否刪除當前記錄?", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
 ???? {
 ???????? DataRow row = gvInfos.GetDataRow(gvInfos.FocusedRowHandle);
 ????????? delByCode(row["Code"].ToString());
 ???????? XtraMessageBox.Show("操作成功!");
 ???? }
 }
二、綁定非數據表中列
Hashtable ht = new Hashtable();
private void gridView6_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
 {
 ???? GridView View = sender as GridView;
 ???? if (e.RowHandle >= 0)
 ???? {
 ???????? object needAlert = View.GetRowCellValue(e.RowHandle, View.Columns["needAlert"]);
 ???????? if (needAlert != null & needAlert != DBNull.Value && needAlert.ToString().Trim() != "0" & View.GetRowCellValue(e.RowHandle, View.Columns["Value"]) != DBNull.Value)
 ???????? {
 ???????????? decimal AverValue = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns["Value"]));
 ???????????? object MinValue = View.GetRowCellValue(e.RowHandle, View.Columns["MinValue"]);
 ???????????? object MaxVlaue = View.GetRowCellValue(e.RowHandle, View.Columns["MaxValue"]);
 ???????????? if (MinValue != DBNull.Value & MinValue != null & MaxVlaue.ToString() != "" & MaxVlaue != DBNull.Value && MaxVlaue != null & MaxVlaue.ToString() != "")
 ???????????? {
 ???????????????? decimal gridColumn2 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns["MinValue"]));
 ???????????????? decimal gridColumn1 = Convert.ToDecimal(View.GetRowCellValue(e.RowHandle, View.Columns["MaxValue"]));
 ???????????????? if (gridColumn2 > AverValue || AverValue > gridColumn1)
 ???????????????? {
 ???????????????????? if (!ht.ContainsKey("pic"))
 ???????????????????????? ht.Add("pic", GetImage(1));
 ???????????????????? e.Value = ht["pic"];
 ???????????????? }
 ??????
轉載于:https://www.cnblogs.com/zzh1236/archive/2012/09/01/2666507.html
總結
以上是生活随笔為你收集整理的[转载]DEV控件:gridControl常用属性设置的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 5699元起 华为MateBook 14
 - 下一篇: 惠普推出新款暗影精灵 2K 165Hz