using DevExpress.Utils;
|
using DevExpress.XtraGrid.Columns;
|
using DevExpress.XtraGrid.Views.Grid;
|
using DevExpress.XtraGrid.Views.Grid.ViewInfo;
|
using System.ComponentModel;
|
|
namespace IStation.Win
|
{
|
/// <summary>
|
/// GridView的拓展类
|
/// </summary>
|
public static class GridViewExtend
|
{
|
#region 默认
|
|
/// <summary>
|
/// 普通视图设置
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetNormalView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = true;
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = false;
|
grid.OptionsCustomization.AllowSort = true;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.ShowIndicator = false;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsView.ShowDetailButtons = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = false;
|
grid.OptionsBehavior.ReadOnly = true;
|
|
|
//grid.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
|
//grid.Appearance.EvenRow.BackColor = Color.FromArgb(244, 248, 251); // 设置偶数行颜色
|
//grid.OptionsView.EnableAppearanceEvenRow = true;
|
//grid.Appearance.OddRow.BackColor = Color.White; // 设置偶数行颜色
|
|
grid.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
grid.OptionsFind.ShowCloseButton = false;
|
|
grid.RowHeight = height;
|
grid.BestFitColumns();
|
|
}
|
|
/// <summary>
|
/// 限制功能的视图
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetLimitView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = false;
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = false;
|
grid.OptionsCustomization.AllowSort = false;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = false;
|
grid.OptionsBehavior.ReadOnly = true;
|
|
grid.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
|
grid.Appearance.EvenRow.BackColor = Color.FromArgb(244, 248, 251); // 设置偶数行颜色
|
grid.OptionsView.EnableAppearanceEvenRow = true;
|
grid.Appearance.OddRow.BackColor = Color.White; // 设置偶数行颜色
|
|
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
}
|
|
/// <summary>
|
/// 普通编辑视图设置
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetNormalEditView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = true;
|
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = true;
|
grid.OptionsCustomization.AllowSort = true;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = true;
|
grid.OptionsBehavior.ReadOnly = false;
|
|
/*grid.OptionsView.EnableAppearanceOddRow = true;
|
grid.OptionsView.EnableAppearanceEvenRow = true;
|
grid.Appearance.OddRow.BackColor = Color.White;
|
grid.Appearance.EvenRow.BackColor = Color.FromArgb(244, 248, 251);*/
|
|
|
grid.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
|
grid.OptionsFilter.AllowFilterEditor = false;
|
grid.OptionsFind.ShowCloseButton = false;
|
grid.OptionsCustomization.AllowSort = false;
|
grid.OptionsCustomization.AllowFilter = false;
|
|
}
|
|
/// <summary>
|
/// 限制功能的编辑视图
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetLimitEditView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = false;
|
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = false;
|
grid.OptionsCustomization.AllowSort = false;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = true;
|
grid.OptionsBehavior.ReadOnly = false;
|
|
grid.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效
|
grid.Appearance.EvenRow.BackColor = Color.FromArgb(244, 248, 251); // 设置偶数行颜色
|
grid.OptionsView.EnableAppearanceEvenRow = true;
|
grid.Appearance.OddRow.BackColor = Color.White; // 设置偶数行颜色
|
|
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
}
|
|
/// <summary>
|
/// 绑定普通编辑视图设置
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetBindingNormalEditView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = true;
|
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = true;
|
grid.OptionsCustomization.AllowSort = true;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = true;
|
grid.OptionsBehavior.ReadOnly = false;
|
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
}
|
|
/// <summary>
|
/// 绑定限制编辑视图设置
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetBindingLimitEditView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = false;
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = false;
|
grid.OptionsCustomization.AllowSort = false;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = true;
|
grid.OptionsBehavior.ReadOnly = false;
|
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
|
|
}
|
|
/// <summary>
|
/// 显示ViewCaption
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void ShowViewCaption(this GridView grid, int height = 35)
|
{
|
grid.OptionsView.ShowViewCaption = true;
|
grid.ViewCaptionHeight = height;
|
grid.Appearance.ViewCaption.TextOptions.HAlignment = HorzAlignment.Near;
|
}
|
|
|
/// <summary>
|
/// GridView注册显示行标
|
/// </summary>
|
/// <param name="grid"></param>
|
public static void RegistCustomDrawRowIndicator(this GridView grid, int IndicatorWidth = 35)
|
{
|
grid.OptionsView.ShowIndicator = true;
|
grid.IndicatorWidth = IndicatorWidth;
|
grid.CustomDrawRowIndicator += (sender, e) =>
|
{
|
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
|
{
|
e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim();
|
e.Appearance.TextOptions.HAlignment = HorzAlignment.Far;
|
}
|
};
|
}
|
|
/// <summary>
|
/// 注册自定义组名
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="col"></param>
|
/// <param name="func"></param>
|
public static void RegistCustomGroupRow(this GridView grid, GridColumn col, Func<object, string> func)
|
{
|
grid.CustomDrawGroupRow += (sender, e) =>
|
{
|
var gridGroupRowInfo = e.Info as GridGroupRowInfo;
|
if (gridGroupRowInfo.Column == col)
|
{
|
var index = grid.GetDataRowHandleByGroupRowHandle(e.RowHandle);
|
var row = grid.GetRow(index);
|
if (row == null)
|
return;
|
gridGroupRowInfo.GroupText = func(row);
|
}
|
};
|
}
|
|
/// <summary>
|
/// 自定义单元格样式
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="bgColor"></param>
|
/// <param name="foreColor"></param>
|
public static void RegistCustomDrawCell(this GridView grid, Color? bgColor = null, Color? foreColor = null)
|
{
|
if (bgColor == null)
|
bgColor = Color.FromArgb(0, 122, 204);
|
if (foreColor == null)
|
foreColor = Color.White;
|
grid.CustomDrawCell += (sender, e) =>
|
{
|
if (e.RowHandle == (sender as GridView).FocusedRowHandle)
|
{
|
var cell = e.Cell as GridCellInfo;
|
if (!cell.IsMerged)
|
{
|
e.Appearance.BackColor = bgColor.Value;
|
e.Appearance.ForeColor = foreColor.Value;
|
}
|
}
|
};
|
}
|
|
/// <summary>
|
/// 获取当前数据行
|
/// </summary>
|
public static T GetCurrentViewModel<T>(this GridView grid, List<T> source) where T : class
|
{
|
if (source == null)
|
return default;
|
if (source.Count < 1)
|
{
|
return default;
|
}
|
var row = grid.GetFocusedRow() as T;
|
if (row == null)
|
{
|
return null;
|
}
|
return row;
|
}
|
|
/// <summary>
|
/// 获取当前数据行
|
/// </summary>
|
public static T GetCurrentViewModel<T>(this GridView grid, BindingList<T> source) where T : class
|
{
|
if (source == null)
|
return default;
|
if (source.Count < 1)
|
{
|
return default;
|
}
|
var row = grid.GetFocusedRow() as T;
|
if (row == null)
|
{
|
return null;
|
}
|
return row;
|
}
|
|
#endregion
|
|
/// <summary>
|
/// 绑定按列分组视图设置 Nsx_20210729
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="col"></param>
|
/// <param name="height"></param>
|
public static void SetGroupView(this GridView grid, GridColumn col, int height = 35)
|
{
|
grid.GroupCount = 1;
|
grid.RowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.OptionsBehavior.ReadOnly = true;
|
grid.OptionsBehavior.Editable = false;
|
grid.OptionsView.ShowDetailButtons = false;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.OptionsBehavior.AllowFixedGroups = DefaultBoolean.True;
|
grid.OptionsBehavior.AllowPixelScrolling = DefaultBoolean.True;
|
grid.OptionsClipboard.ClipboardMode = DevExpress.Export.ClipboardMode.Formatted;
|
grid.OptionsBehavior.AutoExpandAllGroups = true;
|
grid.OptionsFind.AlwaysVisible = false;
|
grid.OptionsPrint.PrintHorzLines = false;
|
grid.OptionsPrint.PrintPreview = true;
|
grid.OptionsPrint.PrintVertLines = false;
|
grid.OptionsView.GroupDrawMode = GroupDrawMode.Office;
|
grid.OptionsView.ShowGroupedColumns = true;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsView.ShowIndicator = false;
|
grid.OptionsView.ShowVerticalLines = DefaultBoolean.False;
|
grid.PreviewFieldName = "PlainText";
|
grid.SortInfo.AddRange(new GridColumnSortInfo[] {
|
new GridColumnSortInfo(col, DevExpress.Data.ColumnSortOrder.None)});
|
grid.BestFitColumns();
|
}
|
|
|
///// <summary>
|
///// 导出Excel
|
///// </summary>
|
//public static void ExportExcel(this GridView grid)
|
//{
|
// var path = ExcelSaveFilePathHelper.SaveFilePathName();
|
// if (string.IsNullOrEmpty(path)) return;
|
// grid.OptionsPrint.PrintDetails = true;//导出明细
|
// grid.OptionsPrint.ExpandAllDetails = true;//导出所有明细,false的话,只会导出展开的明细
|
// grid.ExportToXlsx(path, new DevExpress.XtraPrinting.XlsxExportOptionsEx() { ExportType = DevExpress.Export.ExportType.WYSIWYG, TextExportMode = DevExpress.XtraPrinting.TextExportMode.Text });
|
// DialogResult dr = XtraMessageBox.Show("导出成功!是否打开刚刚保存的Excel文件?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
|
// if (dr != DialogResult.OK)
|
// return;
|
// System.Diagnostics.Process.Start(path);
|
//}
|
/*
|
/// <summary>
|
/// 导出Excel
|
/// </summary>
|
public static void ExportExcel(this GridView grid, DocumentPage page, string pageOperateInfo)
|
{
|
page.ShowCmdOperateInfo("导出列表信息到Excel");
|
var path = ExcelSaveFilePathHelper.SaveFilePathName();
|
page.ShowCmdOperateInfo(pageOperateInfo);
|
if (string.IsNullOrEmpty(path)) return;
|
grid.OptionsPrint.PrintDetails = true;//导出明细
|
grid.OptionsPrint.ExpandAllDetails = true;//导出所有明细,false的话,只会导出展开的明细
|
grid.ExportToXlsx(path, new DevExpress.XtraPrinting.XlsxExportOptionsEx() { ExportType = DevExpress.Export.ExportType.WYSIWYG, TextExportMode = DevExpress.XtraPrinting.TextExportMode.Text });
|
DialogResult dr = XtraMessageBox.Show("导出成功!是否打开刚刚保存的Excel文件?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
|
if (dr != DialogResult.OK)
|
return;
|
System.Diagnostics.Process.Start(path);
|
}*/
|
|
|
/// <summary>
|
/// 主表视图颜色样式设置
|
/// </summary>
|
/// <param name="grid"></param>
|
public static void SetGridMianViewColor(this GridView grid)
|
{
|
var focusRowColor = Color.LightBlue;// Color.FromName(Skin.FocusRowColor);
|
//聚焦
|
grid.Appearance.FocusedRow.Options.UseBackColor = true;
|
grid.Appearance.FocusedRow.BackColor = focusRowColor;
|
grid.Appearance.FocusedCell.Options.UseBackColor = true;
|
grid.Appearance.FocusedCell.BackColor = focusRowColor;
|
|
|
//奇偶行颜色
|
grid.OptionsView.EnableAppearanceOddRow = true;
|
grid.Appearance.OddRow.Options.UseBackColor = true;
|
grid.Appearance.OddRow.BackColor = Color.FromName(Skin.OddRowColor); // 设置奇数行颜色
|
|
|
grid.OptionsView.EnableAppearanceEvenRow = true;
|
grid.Appearance.EvenRow.Options.UseBackColor = true;
|
grid.Appearance.EvenRow.BackColor = Color.FromName(Skin.EvenRowColor); // 设置偶数行颜色
|
}
|
|
/// <summary>
|
/// 从表视图颜色样式设置
|
/// </summary>
|
/// <param name="grid"></param>
|
public static void SetGridSubViewColor(this GridView grid)
|
{
|
//聚焦
|
grid.Appearance.FocusedRow.Options.UseBackColor = true;
|
grid.Appearance.FocusedRow.BackColor = Color.FromName(Skin.FocusRowColor);
|
grid.Appearance.FocusedCell.Options.UseBackColor = true;
|
grid.Appearance.FocusedCell.BackColor = Color.FromName(Skin.FocusRowColor);
|
}
|
|
|
/// <summary>
|
/// 普通编辑视图设置
|
/// </summary>
|
/// <param name="grid"></param>
|
/// <param name="height"></param>
|
public static void SetDefaultEditView(this GridView grid, int height = 35)
|
{
|
grid.OptionsFind.FindNullPrompt = "检索";
|
grid.OptionsSelection.MultiSelect = false;
|
grid.OptionsMenu.EnableColumnMenu = true;
|
|
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
|
grid.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.Appearance.Row.TextOptions.HAlignment = HorzAlignment.Center;
|
grid.FocusRectStyle = DrawFocusRectStyle.RowFullFocus;
|
grid.OptionsCustomization.AllowFilter = true;
|
grid.OptionsCustomization.AllowSort = true;
|
grid.OptionsCustomization.AllowQuickHideColumns = false;
|
grid.OptionsView.ShowAutoFilterRow = false;
|
grid.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;
|
grid.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
|
grid.OptionsView.ShowGroupPanel = false;
|
grid.OptionsClipboard.AllowCopy = DefaultBoolean.True;
|
grid.OptionsBehavior.Editable = true;
|
grid.OptionsBehavior.ReadOnly = false;
|
|
grid.OptionsView.EnableAppearanceOddRow = true;
|
grid.OptionsView.EnableAppearanceEvenRow = true;
|
grid.Appearance.OddRow.BackColor = Color.White;
|
grid.Appearance.EvenRow.BackColor = Color.FromArgb(244, 248, 251);
|
|
|
grid.RowHeight = height;
|
grid.ColumnPanelRowHeight = height;
|
grid.GroupRowHeight = height;
|
grid.BestFitColumns();
|
}
|
|
public class Skin
|
{
|
public static string ThemeStyle { get; set; } = "The Bezier";
|
|
public static string Style { get; set; } = "Office Colorful";
|
|
public string MainFromColor { get; set; } = "#0070C0";
|
|
public string ConfirmButtonColor { get; set; } = "#2960A4";
|
|
public string CancelButtonColor { get; set; } = "#F07409";
|
|
public string StartButtonColor { get; set; } = "#8DB3E2";
|
|
public static string FocusRowColor { get; set; } = "#7292CD";
|
|
public static string OddRowColor { get; set; } = "#D8D8D8";
|
|
public static string EvenRowColor { get; set; } = "#FFFFFF";
|
}
|
|
|
/// <summary>
|
/// 设置拖拽状态下的普通视图
|
/// </summary>
|
public static void SetDragNormalView<t>(this GridView rhs, int height = 35) where t : class
|
{
|
rhs.SetNormalView(height);
|
|
GridHitInfo downHitInfo = null;
|
rhs.MouseDown += (sender, e) =>
|
{
|
var view = sender as GridView;
|
downHitInfo = null;
|
if (view != null)
|
{
|
GridHitInfo hitInfo = view.CalcHitInfo(new Point(e.X, e.Y));
|
if (e.Button == MouseButtons.Left && hitInfo.InRow && hitInfo.HitTest != GridHitTest.RowIndicator)
|
{
|
downHitInfo = hitInfo;
|
}
|
}
|
};
|
|
|
rhs.MouseMove += (sender, e) =>
|
{
|
var view = sender as GridView;
|
if (e.Button == MouseButtons.Left && downHitInfo != null)
|
{
|
Size dragSize = SystemInformation.DragSize;
|
Rectangle dragRect = new Rectangle(new Point(downHitInfo.HitPoint.X - dragSize.Width / 2, downHitInfo.HitPoint.Y - dragSize.Height / 2), dragSize);
|
|
if (!dragRect.Contains(new Point(e.X, e.Y)))
|
{
|
if (view != null)
|
{
|
var dragVm = view.GetSelectedRows().Select(rownum => view.GetRow(rownum) as t).FirstOrDefault();
|
if (dragVm != null)
|
{
|
view.GridControl.DoDragDrop(dragVm, DragDropEffects.Move);
|
}
|
}
|
downHitInfo = null;
|
DXMouseEventArgs.GetMouseArgs(e).Handled = true;
|
}
|
}
|
};
|
}
|
|
|
|
}
|
}
|