using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Infragistics.Win; using Infragistics.Win.Misc; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinTabControl; using Infragistics.Win.UltraWinToolbars; using CoreFS.CA06; namespace Core.Mes.Client.Common { public partial class frmStyleBase :FrmBase { public string[] QueryStrings { get { return this.Key.Split('@'); } } ComboBox cboMain; //定义ComboBox控件 // public bool On_Off_Thread = false; public frmStyleBase() { InitializeComponent(); } protected override void OnLoad(EventArgs e) { SetControlStyle(this); base.OnLoad(e); } //protected override void OnPaint(PaintEventArgs e) //{ // // FillRectangleFloat(e, this); // // base.OnPaint(e); //} private void frmStyleBase_Load(object sender, EventArgs e) { } /// /// 处理ComboBox边框问题(没完成) /// /// /// private void FillRectangleFloat(PaintEventArgs e) { //创建边框颜色 SolidBrush blueBrush = new SolidBrush(Color.Black); //设置边框坐标 float x = cboMain.Location.X - 1; float y = cboMain.Location.Y - 1; float width = cboMain.Width + 2; float height = cboMain.Height + 2; //填充边框 e.Graphics.FillRectangle(blueBrush, x, y, width, height); } /// /// 控件重画事情(没完成) /// /// /// /// private void Main_Paint(object sender, PaintEventArgs e) { FillRectangleFloat(e); } /// /// 遍历设置窗体上控件样式 /// /// 父容器 private void SetControlStyle(Control parentCtrl) { try { foreach (Control ctrl in parentCtrl.Controls) { if (ctrl.HasChildren) SetControlStyle(ctrl); ctrl.EnabledChanged += new System.EventHandler(AllEnabledChanged); if (ctrl.ToString().IndexOf("ComboBox") > 0 && (ctrl is ComboBox)) { SetComboBoxStyle(ctrl as ComboBox); continue; } if (ctrl.ToString().IndexOf("UltraGroupBox") > 0 && (ctrl is UltraGroupBox)) { SetUltraGroupBoxStyle(ctrl as UltraGroupBox); continue; } if (ctrl.ToString().IndexOf("UltraExpandableGroupBox") > 0 && (ctrl is UltraExpandableGroupBox)) { SetUltraExpandableGroupBoxStyle(ctrl as UltraExpandableGroupBox); continue; } if (ctrl.ToString().IndexOf("UltraTextEditor") > 0 && (ctrl is UltraTextEditor)) { SetUltraTextEditorStyle(ctrl as UltraTextEditor); continue; } if (ctrl.ToString().IndexOf("UltraComboEditor") > 0 && (ctrl is UltraComboEditor)) { SetUltraComboEditorStyle(ctrl as UltraComboEditor); continue; } if (ctrl.ToString().IndexOf("UltraCombo") > 0 && (ctrl is UltraCombo)) { SetUltraComboStyle(ctrl as UltraCombo); continue; } if (ctrl.ToString().IndexOf("UltraDateTimeEditor") > 0 && (ctrl is UltraDateTimeEditor)) { SetUltraDateTimeEditorStyle(ctrl as UltraDateTimeEditor); continue; } if (ctrl.ToString().IndexOf("UltraGrid") > 0 && (ctrl is UltraGrid)) { SetUltraGridStyle(ctrl as UltraGrid); continue; } if (ctrl.ToString().IndexOf("Label") > 0 && (ctrl is Label)) { SetLabelStyle(ctrl as Label); continue; } if (ctrl.ToString().IndexOf("CheckBox") > 0 && (ctrl is CheckBox)) { SetCheckBoxStyle(ctrl as CheckBox); continue; } if (ctrl.ToString().IndexOf("RadioButton") > 0 && (ctrl is RadioButton)) { SetRadioButtonStyle(ctrl as RadioButton); continue; } if (ctrl.ToString().IndexOf("TextBox") > 0 && (ctrl is TextBox)) { SetTextBoxStyle(ctrl as TextBox); continue; } if (ctrl.ToString().IndexOf("ComboBox") > 0 && (ctrl is ComboBox)) { SetComboBoxStyle(ctrl as ComboBox); continue; } if (ctrl.ToString().IndexOf("UltraNumericEditor") > 0 && (ctrl is UltraNumericEditor)) { SetUltraNumericEditorStyle(ctrl as UltraNumericEditor); continue; } } } catch (Exception ee) { Console.WriteLine(ee.Message); } } private void AllEnabledChanged(object sender, EventArgs e) { if (((Control)sender).Enabled == true) { if (sender is TextBox || sender is ComboBox) ((Control)sender).BackColor = Color.White;//Color.LightCyan; else if (sender is UltraTextEditor) ((UltraTextEditor)sender).Appearance.BackColor = Color.White;//Color.LightCyan; else if (sender is UltraComboEditor) ((UltraComboEditor)sender).Appearance.BackColor = Color.White;//Color.LightCyan; else if (sender is UltraCombo) ((UltraCombo)sender).Appearance.BackColor = Color.White;//Color.LightCyan; else if (sender is UltraDateTimeEditor) ((UltraDateTimeEditor)sender).Appearance.BackColor = Color.White;//Color.LightCyan; else if (sender is UltraNumericEditor) ((UltraNumericEditor)sender).Appearance.BackColor = Color.White;//Color.LightCyan; } else { if (sender is TextBox || sender is ComboBox) ((Control)sender).BackColor = Color.White;// Color.Empty; else if (sender is UltraTextEditor) ((UltraTextEditor)sender).Appearance.BackColor = Color.White;// Color.Empty; else if (sender is UltraComboEditor) ((UltraComboEditor)sender).Appearance.BackColor = Color.White;// Color.Empty; else if (sender is UltraCombo) ((UltraCombo)sender).Appearance.BackColor = Color.White;// Color.Empty; else if (sender is UltraDateTimeEditor) ((UltraDateTimeEditor)sender).Appearance.BackColor = Color.White;// Color.Empty; else if (sender is UltraNumericEditor) ((UltraNumericEditor)sender).Appearance.BackColor = Color.White;// Color.Empty; } } #region "设置控件样式" /// /// 设置UltraGroupBox样式 /// /// UltraGroup控件 private void SetUltraGroupBoxStyle(UltraGroupBox ulgrpbx) { ulgrpbx.ViewStyle = Infragistics.Win.Misc.GroupBoxViewStyle.XP; ulgrpbx.Font = new System.Drawing.Font("宋体", 9F); ulgrpbx.BackColor = Color.FromArgb(213, 228, 242);//System.Drawing.Color.Gainsboro; ulgrpbx.HeaderAppearance.BackColor = System.Drawing.Color.Empty; ulgrpbx.HeaderAppearance.BackColor2 = System.Drawing.Color.Empty; } /// /// 设置UltraExpandableGroupBox样式 /// /// UltraExpandableGroupBox控件 private void SetUltraExpandableGroupBoxStyle(UltraExpandableGroupBox ulexgrpbx) { ulexgrpbx.ViewStyle = Infragistics.Win.Misc.GroupBoxViewStyle.VisualStudio2005; ulexgrpbx.Font = new System.Drawing.Font("宋体", 9F); ulexgrpbx.BackColor = Color.FromArgb(213, 228, 242);// System.Drawing.Color.Gainsboro; ulexgrpbx.HeaderAppearance.BackColor = Color.FromArgb(202, 218,238);// System.Drawing.Color.Empty; ulexgrpbx.HeaderAppearance.BackColor2 = Color.White;// System.Drawing.Color.Empty; } /// /// 设置UltraTextEditor样式 /// /// UltraTextEditor控件 private void SetUltraTextEditorStyle(UltraTextEditor ultxte) { ultxte.FlatMode = true; if (ultxte.ReadOnly == false && ultxte.Enabled == true) ultxte.Appearance.BackColor = Color.White;// Color.LightCyan; if (ultxte.ReadOnly == true) ultxte.Appearance.BackColor = Color.White; ultxte.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; ultxte.Appearance.BorderColor = Color.Black; ultxte.DisplayStyle = EmbeddableElementDisplayStyle.Standard; } /// /// 设置UltraComboEditor样式 /// /// UltraComboEditor控件 private void SetUltraComboEditorStyle(UltraComboEditor ulcmbxe) { ulcmbxe.FlatMode = true; ulcmbxe.AutoComplete = true; ulcmbxe.DropDownListWidth = -1; if (ulcmbxe.Enabled == true && ulcmbxe.ReadOnly == false) ulcmbxe.Appearance.BackColor = Color.White;//Color.LightCyan; ulcmbxe.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; ulcmbxe.Appearance.BorderColor = Color.Black; ulcmbxe.DisplayStyle = EmbeddableElementDisplayStyle.Standard; } /// /// 设置UltraCombo样式 /// /// UltraCombo控件 private void SetUltraComboStyle(UltraCombo ulcmb) { ulcmb.FlatMode = true;// DefaultableBoolean.True; ulcmb.BorderStyle = Infragistics.Win.UIElementBorderStyle.Default; if (ulcmb.Enabled == true && ulcmb.ReadOnly == false) ulcmb.Appearance.BackColor = Color.White;//Color.LightCyan; } /// /// 设置UltraDateTimeEditor样式 /// /// UltraDateTimeEditor控件 private void SetUltraDateTimeEditorStyle(UltraDateTimeEditor uldte) { uldte.FlatMode = true; if (uldte.Enabled == true && uldte.ReadOnly == false) uldte.Appearance.BackColor = Color.White;//Color.LightCyan; uldte.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid; uldte.Appearance.BorderColor = Color.Black; } /// /// 设置UltraToolbarsManager样式 /// /// UltraToolbarsManager控件 private void SetUltraToolbarsManager(UltraToolbarsManager ctrl) { ctrl.ShowQuickCustomizeButton = false; ctrl.ToolbarSettings.ToolDisplayStyle = ToolDisplayStyle.ImageAndText; ctrl.Style = ToolbarStyle.VisualStudio2005; ctrl.LockToolbars = true; } /// /// 设置UltraGrid样式 /// /// UltraGrid控件 private void SetUltraGridStyle(UltraGrid ulgrid) { ulgrid.DisplayLayout.Appearance.BackColor = Color.FromArgb(245, 250, 254); ulgrid.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False; ulgrid.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill; ulgrid.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate; ulgrid.DisplayLayout.MaxColScrollRegions = 2; ulgrid.DisplayLayout.MaxRowScrollRegions = 2; ulgrid.DisplayLayout.UseFixedHeaders = true; ulgrid.DisplayLayout.Override.FixedHeaderIndicator = FixedHeaderIndicator.None; ulgrid.DisplayLayout.Override.HeaderAppearance.TextHAlign = Infragistics.Win.HAlign.Center; ulgrid.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.Standard; ulgrid.DisplayLayout.Override.MinRowHeight = 21; ulgrid.DisplayLayout.Override.RowSelectorNumberStyle = Infragistics.Win.UltraWinGrid.RowSelectorNumberStyle.RowIndex; ulgrid.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.True; ulgrid.DisplayLayout.Override.AllowDelete = DefaultableBoolean.False; if (ulgrid.DisplayLayout.Bands[0].CardView == false) ulgrid.DisplayLayout.Override.ActiveRowAppearance.FontData.Bold = DefaultableBoolean.True; else ulgrid.DisplayLayout.Override.ActiveRowAppearance.FontData.Bold = DefaultableBoolean.False; ulgrid.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.Empty; ulgrid.DisplayLayout.Override.ActiveRowAppearance.ForeColor = Color.Empty; ulgrid.DisplayLayout.Override.CellClickAction = CellClickAction.EditAndSelectText; ulgrid.Font = new System.Drawing.Font("宋体", 9F); ulgrid.DisplayLayout.Appearance.FontData.SizeInPoints = 9; if (ulgrid.DisplayLayout.Bands.Count == 1) { ulgrid.DisplayLayout.Override.HeaderAppearance.BackColor = Color.FromArgb(158, 191, 231);// System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Override.RowSelectorAppearance.BackColor = System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Override.RowAlternateAppearance.BackColor = Color.GhostWhite; } else if (ulgrid.DisplayLayout.Bands.Count == 2) { ulgrid.DisplayLayout.Bands[0].Override.HeaderAppearance.BackColor = Color.FromArgb(158, 191, 231);//System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Bands[0].Override.RowSelectorAppearance.BackColor = System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Bands[0].Override.RowAppearance.BackColor = Color.LightGray; ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[1].Override.RowAppearance.BorderColor = Color.FromArgb(170, 184, 131); } else if (ulgrid.DisplayLayout.Bands.Count == 3) { ulgrid.DisplayLayout.Bands[0].Override.HeaderAppearance.BackColor = Color.FromArgb(158, 191, 231);//System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Bands[0].Override.RowSelectorAppearance.BackColor = System.Drawing.Color.LightSteelBlue; ulgrid.DisplayLayout.Bands[0].Override.RowAppearance.BackColor = Color.LightGray; ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[1].Override.RowAppearance.BorderColor = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[2].Override.HeaderAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[2].Override.HeaderAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[2].Override.HeaderAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[2].Override.RowSelectorAppearance.BackColor = Color.FromArgb(233, 242, 199); ulgrid.DisplayLayout.Bands[2].Override.RowSelectorAppearance.BackColor2 = Color.FromArgb(170, 184, 131); ulgrid.DisplayLayout.Bands[2].Override.RowSelectorAppearance.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical; ulgrid.DisplayLayout.Bands[2].Override.RowAppearance.BorderColor = Color.FromArgb(170, 184, 131); } } /// /// 设置Label样式 /// /// Label控件 private void SetLabelStyle(Label lbl) { lbl.BackColor = Color.Transparent; } /// /// 设置CheckBox样式 /// /// CheckBox控件 private void SetCheckBoxStyle(CheckBox chkbx) { chkbx.FlatStyle = FlatStyle.Flat; chkbx.BackColor = Color.Transparent; } /// /// 设置RadioButton样式 /// /// RadioButton控件 private void SetRadioButtonStyle(RadioButton rdbtn) { rdbtn.FlatStyle = FlatStyle.Flat; rdbtn.BackColor = Color.Transparent; } /// /// 设置TextBox样式 /// /// TextBox控件 private void SetTextBoxStyle(TextBox txtbx) { txtbx.BorderStyle = BorderStyle.Fixed3D; if (txtbx.Enabled == true && txtbx.ReadOnly == false) txtbx.BackColor = Color.White;//Color.LightCyan; if (txtbx.ReadOnly == true) txtbx.BackColor = Color.White; } /// /// 设置ComboBox样式 /// /// ComboBox控件 private void SetComboBoxStyle(ComboBox cmbx) { cmbx.FlatStyle = FlatStyle.Standard; if (cmbx.Enabled == true) cmbx.BackColor = Color.White;//Color.LightCyan; else cmbx.BackColor = Color.White;//Color.LightCyan; } /// /// 设置UltraNumericEditor样式 /// /// UltraNumericEditor控件 private void SetUltraNumericEditorStyle(UltraNumericEditor ulNumEdor) { ulNumEdor.ImeMode = ImeMode.Disable; ulNumEdor.DisplayStyle = EmbeddableElementDisplayStyle.Standard; if (ulNumEdor.Enabled == true && ulNumEdor.ReadOnly == false) ulNumEdor.Appearance.BackColor = Color.White;// Color.LightCyan; } #endregion #region "公共方法" /// /// ultraGrid单元格内容复制 /// /// /// private void ultraGrid1_KeyDown(object sender, KeyEventArgs e) { if (((UltraGrid)sender).ActiveCell != null) { if (e.Control && e.KeyCode == Keys.C) { Clipboard.SetDataObject(((UltraGrid)sender).ActiveCell.Value, false); } } } /// /// 设置ultraGrid是否允许分组 /// /// ultraGrid控件 /// 是否允许 public void AllowGroup(Infragistics.Win.UltraWinGrid.UltraGrid ulgrid, bool Checked) { ulgrid.DisplayLayout.GroupByBox.Hidden = !Checked; if (!Checked) ulgrid.DisplayLayout.Bands[0].SortedColumns.Clear(); } /// /// 设置ultraGrid是允许过滤 /// /// ultraGrid控件 /// 是否允许 public void AllowFilter(Infragistics.Win.UltraWinGrid.UltraGrid ulgrid, bool Checked) { ulgrid.DisplayLayout.Override.FilterUIType = Infragistics.Win.UltraWinGrid.FilterUIType.FilterRow; if (Checked) ulgrid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True; else ulgrid.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ulgrid.DisplayLayout.Bands[0].ColumnFilters.ClearAllFilters(); } /// /// 设置ultraGrid指定Bands索引的为不可编辑,如有选择Checked列Key为selectkey /// /// ultraGrid控件 /// Bands索引 public void SetNoEnable(Infragistics.Win.UltraWinGrid.UltraGrid ulgrid, int index) { foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn Col in ulgrid.DisplayLayout.Bands[index].Columns) { if (Col.Key.ToLower() != "selectkey") //选择复选框 Col.CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } /// /// 设置ultraGrid为不可编辑,如有选择Checked列Key为selectkey /// /// ultraGrid控件 public void SetNoEnable(Infragistics.Win.UltraWinGrid.UltraGrid ulgrid) { foreach (Infragistics.Win.UltraWinGrid.UltraGridBand var in ulgrid.DisplayLayout.Bands) { foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn Col in var.Columns) { if (Col.Key.ToLower() != "selectkey") //选择复选框 Col.CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } } } /// /// 设置指定条件行的背景颜色 /// /// 数据筛条件(DataView.RowFilter的值) /// /// 颜色值 /// 数据源 /// ultraGrid控件 /// 是否可编辑 public void SetRowBackColor(string condition, string key, System.Drawing.Color color, DataTable table, Infragistics.Win.UltraWinGrid.UltraGrid Grid, bool NotEdit) { try { bool ISOK = true; List priKey = new List(); priKey.Add(key); ISOK = SetPriKey(priKey, table); DataView dv = new DataView(); dv.Table = table; dv.RowFilter = condition; DataTable dt = dv.ToTable(); if (ISOK) { foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in Grid.Rows) { if (!row.IsDataRow) continue; DataRow[] dr = dt.Select(key + "=" + this.getStr(row.Cells[key].Value)); if (dr.Length > 0) { Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance(); appearance1.ForeColor = color; row.Appearance = appearance1; if (NotEdit) { try { row.Cells["SelectKey"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } catch (Exception) { } } } } } else foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in Grid.Rows) { if (!row.IsDataRow) continue; foreach (DataRowView drow in dv) { if (drow[key].ToString() == row.Cells[key].Value.ToString()) { Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance(); appearance1.ForeColor = color; row.Appearance = appearance1; if (NotEdit) { try { row.Cells["SelectKey"].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } catch (Exception) { } } } } } } catch (Exception) { } } /// /// 对目标对象进行字符串的转换 /// /// /// public string getStr(object obj) { if (obj == null || obj.GetType() == typeof(System.DBNull)) { return ""; } else { return Convert.ToString(obj).Trim(); } } public bool SetPriKey(List PriStr, DataTable dt) { try { DataColumn[] PriColunms = new DataColumn[PriStr.Count]; int i = 0; foreach (string var in PriStr) { PriColunms[i] = dt.Columns[var]; i++; } dt.PrimaryKey = PriColunms; } catch { return false; } return true; } /// /// 获取子窗体弹出的位置坐标 /// /// /// public static Point GetChildWindowLocation(Size ChildWindowSize) { int width = Cursor.Position.X + ChildWindowSize.Width - Screen.PrimaryScreen.Bounds.Width; int height = Cursor.Position.Y + ChildWindowSize.Height - Screen.PrimaryScreen.Bounds.Height + 30; width = (width > 0) ? (Cursor.Position.X - width) : Cursor.Position.X; // X坐标 height = (height > 0) ? (Cursor.Position.Y - height + 10) : (Cursor.Position.Y + 10); // Y坐标 return new Point(width, height); } #endregion }//class }