在作系统软件时,经常有某些模块或者整个软件都会有一个固定的风格。这些风格就凸显了界面的样式,需要去设置一些控件的属性之类的去实现。
面对这种有统一样式的界面时,避免每个程序员在作界面都要每一个界面去设置相同的属性,我这里整理了一个公共方法。该方法通过传窗体对象,通过反射机制取得窗体上的每一个控件,通过循环判断控件类型,对这些不同类型的控件设置它们的属性。
/// <summary>
/// 初始化控件样式
/// </summary>
/// <param name="frm">控件所在窗体</param>
public void InitFormAllControlStyle(Form frm)
{
try
{
//取得窗体属性
Type FormType = frm.GetType();
//取得控件
FieldInfo[] fi = FormType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
foreach (FieldInfo info in fi)
{
//设置BarManege样式
if (info.FieldType == typeof(DevExpress.XtraBars.BarManager))
{
DevExpress.XtraBars.BarManager barManege = (info.GetValue(frm)) as DevExpress.XtraBars.BarManager;
barManege.AllowCustomization = false;
barManege.AllowQuickCustomization = false;
barManege.AllowShowToolbarsPopup = false;
}
else if (info.FieldType == typeof(TreeList))
{
TreeList tr = (info.GetValue(frm)) as TreeList;
tr.OptionsView.ShowColumns = false; //是否显示选中的行
tr.OptionsBehavior.Editable = false; //不可编辑
tr.OptionsView.ShowHorzLines = false; //OptionsView提供对树状列表的显示选项,设置水平线是否显示
tr.OptionsView.ShowIndicator = false; //节点的指示面板是否显示
tr.OptionsView.ShowVertLines = false; //垂直线条是否显示
//设置treeList的折叠样式为 + - 号
tr.LookAndFeel.UseDefaultLookAndFeel = false;
tr.LookAndFeel.UseWindowsXPTheme = true;
tr.OptionsSelection.InvertSelection = true; //聚焦的样式是否只适用于聚焦细胞或所有细胞除了聚焦对象,失去焦点后
foreach (TreeListColumn column in tr.Columns)
{
column.OptionsColumn.AllowSort = false;
column.OptionsFilter.AllowFilter = false;
}
}
else if (info.FieldType == typeof(GridControl))
{
GridControl grd = (info.GetValue(frm)) as GridControl;
var gv = (GridView)grd.MainView;
gv.OptionsView.ShowGroupPanel = false;
gv.OptionsFind.AlwaysVisible = false;
//默认设置不可编辑
gv.OptionsBehavior.Editable = false;
gv.OptionsView.ShowIndicator = false;
//禁用子表显示
gv.OptionsDetail.EnableMasterViewMode = false;
//设置标题和内容居中
gv.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
gv.Appearance.ViewCaption.TextOptions.HAlignment = HorzAlignment.Center;
//禁用列头的过滤器
gv.OptionsCustomization.AllowFilter = false;
//排序后选择第一行数据
gv.EndSorting += gv_EndSorting;
//列标题,右键禁用
gv.OptionsMenu.EnableColumnMenu = false;
}
else if (info.FieldType == typeof(VGridControl))
{
VGridControl vgd = (info.GetValue(frm)) as VGridControl;
//默认设置不可编辑
vgd.OptionsBehavior.Editable = false;
}
else if (info.FieldType == typeof(PictureEdit))
{
PictureEdit pic = (info.GetValue(frm)) as PictureEdit;
var picName = pic.Name.Substring(3);
var picPath = ConfigHelper.ImagePath + picName + ".png";
if (File.Exists(picPath))
{
pic.Image = Image.FromFile(picPath);
}
}//日期控件默认最小时间为1990-1-1,最大值为2079-1-1
else if (info.FieldType == typeof(DateEdit))
{
DateEdit dateCol = (info.GetValue(frm)) as DateEdit;
dateCol.Properties.MinValue = new DateTime(1900, 1, 1);
dateCol.Properties.MaxValue = new DateTime(2079, 1, 1);
}
else
{
//......
}
}
}
catch (Exception e)
{
throw e;
}
}
————————————————
版权声明:本文为优快云博主「轻点鼠标」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_35351282/article/details/80728989