问题描述 投票:0回答:1
对齐列,但到目前为止,对齐还没有变化。 (如下所示)

我如何对齐我的列

private void AlignGridColumns() { GridView[] gridViews = { gvDailySales, gvDetail, gvItemDetail }; foreach (var gridView in gridViews) { if (gridView != null && gridView.GridControl.DataSource is DataTable dt) { foreach (GridColumn column in gridView.Columns) { if (dt.Columns.Contains(column.FieldName)) { AlignColumns(column, dt.Columns[column.FieldName].DataType); } } } } } private void AlignColumns(GridColumn column, Type columnType) { if (columnType == typeof(decimal) || columnType == typeof(double) || columnType == typeof(float) || columnType == typeof(long) || columnType == typeof(int) && column.FieldName != "Void" && column.FieldName != "Refund") { column.AppearanceCell.Options.UseTextOptions = true; column.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far; column.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric; column.DisplayFormat.FormatString = "N2"; } }
通过删除IF条件

AlignColumns

,所有其他列将与右对齐,只有从
CalculateMasterFields

中分配的值将左对齐。 我还检查了我要编辑的列的数据表,它的确是小数或int格式的,而不是字符串(字符串将自动从Devexpress community中看到的左向左对准)。

下面是我启动和创建网格列的方式:

我如何创建我的网格列

private void btnSearch_Click(object sender, EventArgs e) { myMasterTable = myListing.CalculateMasterFields(mySalesListingTable, myFileFormat); myDetailTable = myListing.CalculateDetailFields(mySalesListingDetailTable, myFileFormat); // Create DataRelation for Master-Detail1 if detail table has rows if (mySalesListingDetailTable.Rows.Count > 0) { DataSet dataSet = new DataSet(); dataSet.Tables.Add(myMasterTable); dataSet.Tables.Add(myDetailTable); dataSet.Relations.Add("MasterDetailRelation1", myMasterTable.Columns["DocNo"], myDetailTable.Columns["DocNo"]); gridControl1.DataSource = dataSet.Tables[0]; gridControl1.LevelTree.Nodes.Add("MasterDetailRelation1", gvDetail); AlignGridColumns(); gvDailySales.OptionsDetail.ShowDetailTabs = false; } else { gridControl1.DataSource = myMasterTable; AlignGridColumns(); } } private void CreateGridColumn(string caption, string fieldName, bool isVisible, bool isMaster) { GridColumn gridColumn = new GridColumn(); gridColumn.FieldName = fieldName; gridColumn.Caption = caption; gridColumn.AppearanceCell.Font = new System.Drawing.Font("Tahoma", 9.75F); gridColumn.AppearanceCell.Options.UseFont = true; gridColumn.AppearanceHeader.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold); gridColumn.AppearanceHeader.Options.UseFont = true; gridColumn.OptionsColumn.AllowEdit = false; gridColumn.Visible = isVisible; if (isMaster) { if (gvDailySales.Columns.ColumnByName(fieldName) == null) gvDailySales.Columns.Add(gridColumn); } else { if (gvDetail.Columns.ColumnByName(fieldName) == null) gvDetail.Columns.Add(gridColumn); } } private void CreateMasterTableColumns(string myFileFormat) { CreateMasterColumns(CreateGridColumn); CreateDetailColumns(CreateGridColumn); }

感谢提供的任何帮助或建议。预先感谢!
    

使用

AlignGridColumns

AlignColumns

列对齐的逻辑正在干扰我的InitializeFormControl的工作,该工作用来定义字段的数据类型,以使其在GridView中对齐。

InitializeFormControl()

private void InitializeFormControl() { FormControlUtil f = new FormControlUtil(myDBSetting); // Currency fields f.AddField("TotalExTax", FormControlUtil.CURRENCY_FIELD); f.AddField("ServiceCharge", FormControlUtil.CURRENCY_FIELD); f.InitControls(this); }
c# gridview alignment devexpress
1个回答
0
投票
,删除

AlignGridColumns

AlignColumns
解决了问题。
对我的高年级的信念。
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.