/// <summary> /// Handles "Order" BeforeCellPaint events /// </summary> /// <param name="sender">DataGridViewMaskedTextBoxAdvColumn</param> /// <param name="e">BeforeCellPaintEventArgs</param> void X2Order_BeforeCellPaint(object sender, BeforeCellPaintEventArgs e) { DataGridViewMaskedTextBoxAdvColumn oc = sender as DataGridViewMaskedTextBoxAdvColumn; if (oc != null) { string s = oc.Text.Substring(1); int value; if (int.TryParse(s, out value)) { if (value <= 3000) { oc.BackColor = Color.MistyRose; } else if (value >= 7000) { oc.BackColor = Color.PaleTurquoise; } } } }
/// <summary> /// Initializes our X2 "Part" environment /// </summary> private void X2Part_Initialize() { DataGridViewMaskedTextBoxAdvColumn oc = dataGridViewX2.Columns["Part"] as DataGridViewMaskedTextBoxAdvColumn; if (oc != null) { // Hook onto the following events so we can // demonstrate cell customization and click processing oc.BeforeCellPaint += X2Part_BeforeCellPaint; oc.ButtonCustomClick += X2Part_ButtonCustomClick; oc.ButtonDropDownClick += X2Part_ButtonDropDownClick; } }
/// <summary> /// Handles X2 "Part" BeforeCellPaint events /// </summary> /// <param name="sender">DataGridViewMaskedTextBoxAdvColumn</param> /// <param name="e">BeforeCellPaintEventArgs</param> void X2Part_BeforeCellPaint(object sender, BeforeCellPaintEventArgs e) { DataGridViewMaskedTextBoxAdvColumn oc = sender as DataGridViewMaskedTextBoxAdvColumn; if (oc != null) { string s = oc.Text; if (s.EndsWith("N") == true) { oc.ForeColor = Color.Green; } else if (s.EndsWith("X") == true) { oc.ForeColor = Color.Red; } } }
/// <summary> /// 创建DataGridView的扩展的MaskedTextBoxAdvColumn列 /// </summary> /// <param name="_dgv">要创建列的DataGridView</param> /// <param name="_alignment">设置列的对齐方式</param> /// <param name="_columnName">列名</param> /// <param name="_headerText">标题名</param> /// <param name="_dataPropertyName">绑定数据源的字段名称</param> /// <param name="_toolTipText">TipText提示</param> /// <param name="_maxInputLength">可输入的最大长度</param> /// <param name="_readOnly">设置列是否只读,true 只读,false 读写</param> /// <param name="_visible">设置列是否可见,true 显示,false 隐藏</param> /// <param name="_notEmpty">设置列是否为必填列,true 必填,false 非必填</param> /// <param name="_backColor">设置列的背景色,当_notEmpty为true时,此项为必需值,为false,此项可以为Color.Empty</param> /// <param name="_buttonCustomVisible">设置是否显示可选择按钮,true 显示,false 隐藏</param> /// <param name="_columnState">装载DataGridView可写可读、只读列的数据字典</param> public static void InitDgvMaskedTextBoxAdvColumn(DataGridView _dgv, DataGridViewContentAlignment _alignment, string _columnName, string _headerText, string _dataPropertyName, string _toolTipText, int _maxInputLength, bool _readOnly, bool _visible, bool _notEmpty, Color _backColor, bool _buttonCustomVisible, ref Dictionary <string, bool> _columnState) { DataGridViewMaskedTextBoxAdvColumn maskedTextBoxAdvCol = new DataGridViewMaskedTextBoxAdvColumn(); maskedTextBoxAdvCol.HeaderCell.Style.Alignment = _alignment == 0 ? DataGridViewContentAlignment.MiddleLeft : _alignment; maskedTextBoxAdvCol.Name = _columnName; maskedTextBoxAdvCol.HeaderText = _headerText; maskedTextBoxAdvCol.DataPropertyName = _dataPropertyName; maskedTextBoxAdvCol.ToolTipText = _toolTipText; maskedTextBoxAdvCol.MaxInputLength = _maxInputLength; maskedTextBoxAdvCol.Visible = _visible; maskedTextBoxAdvCol.ReadOnly = _readOnly; if (_notEmpty == true) { maskedTextBoxAdvCol.DefaultCellStyle.BackColor = _backColor; } maskedTextBoxAdvCol.ButtonCustom.Visible = _buttonCustomVisible; _columnState.Add(_columnName, _readOnly); _dgv.Columns.Add(maskedTextBoxAdvCol); }