using DevExpress.Utils.Behaviors;
using DevExpress.Utils.DragDrop;
namespace Yw.WinFrmUI
{
///
/// GridView的拓展类
///
public static class GridViewExtensions
{
#region 默认
///
/// 普通视图设置
///
public static void SetNormalView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = true;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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.ShowIndicator = true;
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.RowHeight = height;
//grid.ColumnPanelRowHeight = height;
//grid.GroupRowHeight = height;
grid.BestFitColumns();
}
///
/// 限制功能的视图
///
public static void SetLimitView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = false;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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();
}
///
/// 普通编辑视图设置
///
public static void SetNormalEditView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = true;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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 static void SetLimitEditView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = false;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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();
}
///
/// 绑定普通编辑视图设置
///
public static void SetBindingNormalEditView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = true;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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();
}
///
/// 绑定限制编辑视图设置
///
public static void SetBindingLimitEditView(this GridView grid, int height = 30)
{
grid.OptionsFind.FindNullPrompt = "检索";
grid.OptionsSelection.MultiSelect = false;
grid.OptionsMenu.EnableColumnMenu = false;
grid.OptionsSelection.EnableAppearanceFocusedCell = false;
grid.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
grid.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.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();
}
///
/// 显示ViewCaption
///
public static void ShowViewCaption(this GridView grid, int height = 30)
{
grid.OptionsView.ShowViewCaption = true;
grid.ViewCaptionHeight = height;
grid.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
}
///
/// GridView注册显示行标
///
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 = DevExpress.Utils.HorzAlignment.Far;
}
};
}
///
/// 注册自定义组名
///
public static void RegistCustomGroupRow(this GridView grid, GridColumn col, Func