DevExpress 컨트롤 경험 요약
11406 단어 DevExpress
public static bool ToExcelDev(List lstGridControl)
{
SaveFileDialog dig = new SaveFileDialog();
dig.Filter = ExcelHelper.FILTER_EXCEL;
if (dig.ShowDialog() == DialogResult.Cancel)
return false;
try
{
CompositeLink complink = new CompositeLink(new PrintingSystem());
foreach (GridControl item in lstGridControl)
{
if (item.DataSource != null)
{
foreach (GridView gridView in item.Views)
{
gridView.OptionsPrint.AutoWidth = false;
}
PrintableComponentLink link = new PrintableComponentLink();
link.Component = item;
complink.Links.Add(link);
}
}
complink.CreatePageForEachLink();
complink.ExportToXlsx(dig.FileName, new XlsxExportOptions() { ExportMode = XlsxExportMode.SingleFilePageByPage, TextExportMode = TextExportMode.Text });
MessageBox.Show(ValidateHelper.GetText("Success", " Excel!"), ValidateHelper.GetText("Alert", " "));
return true;
}
catch (Exception er)
{
MessageBox.Show(er.Message, ValidateHelper.GetText("Alert", " "));
return false;
}
}
참고 사용자 컴퓨터에는 Office 2007 이상의 버전이 설치되어 있어야 합니다. 그렇지 않으면 내보낸 파일이 비어 있습니다.
참고: 내보내기 전에 GridView를 사용해야 합니다.OptionsPrintAutoWidth=false;,그렇지 않으면 내보낸 후 데이터가 한데 뒤섞인다.
advBandedGridView1.OptionsPrint.AutoWidth = false;
다중 문서documentManager1, tabbedView 보기에서 문서 탭 표시 순서 변경
tabbedView1.Controller.Move((currentDoc as DevExpress.XtraBars.Docking2010.Views.Tabbed.Document), 0);
gridView 열에 있는 행의 편집 컨트롤을 비워 둡니다.
private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit EmptyEditor;
private void InitEmptyEditor()
{
EmptyEditor = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
EmptyEditor.Buttons.Clear();
EmptyEditor.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
gridControl1.RepositoryItems.Add(EmptyEditor);
new DevExpress.XtraGrid.Design.XViewsPrinting(gridControl1);
}
private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e)
{
if (e.Column.FieldName == SELECTFIELDNAME)
{
if (IsMachineRow(e.RowHandle) == false)
{
e.RepositoryItem = EmptyEditor;
}
}
}
spinEdit 텍스트 상자의 소수점 삭제하기
spinEdit1.Properties.IsFloatValue = false;
gridView1 편집을 해결할 때 커서가 칸을 떠나지 않고 바로 저장된 후 최신 데이터는 데이터베이스에 쓸 수 없습니다.
//
gridView1.PostEditor();
패리티 행 스타일gridView1이 활성화되었습니다.OptionsView.EnableAppearanceEvenRow = true;이후, gridView1_RowStyle 이벤트의 e. Appearance.BackColor 속성이 작동하지 않으므로 다음 방법으로 변경할 수 있습니다.
private void ConditionsAdjustment()
{
StyleFormatCondition cn;
cn = new StyleFormatCondition(FormatConditionEnum.GreaterOrEqual, dgvPO.Columns["Status"], null, 1);
cn.ApplyToRow = true;
cn.Appearance.BackColor = Color.Gray;
dgvPO.FormatConditions.Add(cn);
//
cn = new StyleFormatCondition(FormatConditionEnum.Equal, dgvPO.Columns["Status"], null, -1);
cn.ApplyToRow = true;
cn.Appearance.Font = new Font(AppearanceObject.DefaultFont, FontStyle.Strikeout);
cn.Appearance.ForeColor = SystemColors.ControlDark;
dgvPO.FormatConditions.Add(cn);
//
}
gridView 드롭 값 스크롤 바 이벤트 및 값
void gvFacility_TopRowChanged(object sender, EventArgs e)
{
int index= gvFacility.TopRowIndex;
}
사용자 정의 열 머리글 CustomDrawColumnHeader는 CheckBox입니다.
private void FrmAllPlan_Load(object sender, EventArgs e)
{
var itemIndex = gcResult.RepositoryItems.Add(new RepositoryItemCheckEdit());
var columnEdit = gcResult.RepositoryItems[itemIndex] as RepositoryItemCheckEdit;
columnEdit.ValueChecked = true;
columnEdit.ValueUnchecked = false;
ColIsSelected.ColumnEdit = columnEdit;
//dgvResult.CustomDrawColumnHeader+=dgvResult_CustomDrawColumnHeader;
}
private void dgvResult_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e)
{
if (e.Column == null)
return;
if (e.Column.AbsoluteIndex != 0)
return;
Rectangle rect = e.Bounds;
rect.Inflate(-1, -1);
e.Info.InnerElements.Clear();
e.Painter.DrawObject(e.Info);
DrawCheckBox(e.Graphics, rect, e.Column.ColumnEdit as RepositoryItemCheckEdit, IsAllSelected());
e.Handled = true;
}
void DrawCheckBox(Graphics g,Rectangle r,RepositoryItemCheckEdit checkEdit,bool isCheck)
{
DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo info = default(DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo);
DevExpress.XtraEditors.Drawing.CheckEditPainter painter = default(DevExpress.XtraEditors.Drawing.CheckEditPainter);
DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs args = default(DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs);
info = (CheckEditViewInfo)checkEdit.CreateViewInfo();
painter = (CheckEditPainter)checkEdit.CreatePainter();
info.EditValue = isCheck;
info.Bounds = r;
info.CalcViewInfo(g);
args = new ControlGraphicsInfoArgs(info, new DevExpress.Utils.Drawing.GraphicsCache(g), r);
painter.Draw(args);
args.Cache.Dispose();
}
private void dgvResult_MouseUp(object sender, MouseEventArgs e)
{
if(e.Button== System.Windows.Forms.MouseButtons.Left && e.Clicks==1)
{
GridView gridview = sender as GridView;
if(gridview!=null)
{
GridHitInfo hitinfo = gridview.CalcHitInfo(e.Location);
if(hitinfo.InRow==false && hitinfo.InColumn==true)
{
SetAllCheckBox(!IsAllSelected());
//if (AffectCheckBoxChange != null)
// AffectCheckBoxChange(this, null);
}
}
this.dgvResult.RefreshData();
DXMouseEventArgs args = DXMouseEventArgs.GetMouseArgs(e);
args.Handled = true;
}
}
private void SetAllCheckBox(bool p)
{
Model.BindCollection lstRe = gcResult.DataSource as Model.BindCollection;
if (lstRe != null)
{
foreach (ReportData model in lstRe)
{
model.IsSelected = p;
}
}
gcResult.RefreshDataSource();
}
private bool IsAllSelected()
{
bool result = true;
Model.BindCollection lstRe = gcResult.DataSource as Model.BindCollection;
if (lstRe != null)
{
foreach (ReportData model in lstRe)
{
if (model.IsSelected == false)
{
result = false;
break;
}
}
}
else
{
result = false;
}
return result;
}
조건에 따라 셀 병합
private void gvSupplierReplyOfShortage_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
{
SupplierReplyOfShortageInfo model1 = gvSupplierReplyOfShortage.GetRow(e.RowHandle1) as SupplierReplyOfShortageInfo;
SupplierReplyOfShortageInfo model2 = gvSupplierReplyOfShortage.GetRow(e.RowHandle2) as SupplierReplyOfShortageInfo;
if (e.Column.FieldName == colTotalShortageMatOfPlanHasBroughtAmount.FieldName || e.Column.FieldName == colUnit.FieldName)
{
if (model1.MatName==model2.MatName)
{
e.Merge = true;
}
else
{
e.Merge = false;
}
e.Handled = true;// true, 。
}
}
지정한 줄에 위치 지정(정렬 후에도 정확하게 위치 지정)
주의: 열의 값은 유일하게 한 줄을 확정할 수 있어야 한다
gvPO.FocusedRowHandle = gvPO.LocateByValue(0, colWOCode, model.Code);
GridView에 정수를 입력하여% 형식으로 표시하고 데이터베이스에 저장된 값은 실제 값입니다.
this.colEfficiency.DisplayFormat.FormatString = "{0:n}%";
this.colEfficiency.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Custom;
참고: 실제 값은 표시할 때 *100, 데이터베이스에 저장하기 전에/100
TextEdit에% 형식으로 정수 입력
this.textEdit1.Properties.Mask.EditMask = "p";
this.textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
this.textEdit1.Properties.Mask.UseMaskAsDisplayFormat = true;
'선택'열을 편집할 때, 마우스를 누르면 바로 선택하거나 선택 취소합니다
// “ ” ,
gridView1.OptionsBehavior.EditorShowMode = EditorShowMode.MouseDown;
표 필터링된 데이터 행
private void allSelectedToolStripMenuItem_Click(object sender, EventArgs e)
{
IList list= gridView1.DataController.GetAllFilteredAndSortedRows();
foreach(var item in list)
{
DataRowView dataView = (item as DataRowView);
dataView.Row[colIsSelected.FieldName] = true;
}
gridView1.RefreshData();
}
GridView 모두 확장 또는 숙박
///
///
///
///
public static void ExpandAllRows(this GridView view)
{
view.BeginUpdate();
try
{
int dataRowCount = view.DataRowCount;
for (int rHandle = 0; rHandle < dataRowCount; rHandle++)
view.SetMasterRowExpanded(rHandle, true);
}
finally
{
view.EndUpdate();
}
}
gvCapacityAllocation.CollapseAllDetails();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[DevExpress] Excel로 내보내기주요 코드: .csharpcode, .csharpcode pre font-size: small; color: black; font-family: consolas, "Courier New", courier, monos...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.