[转载]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