private static void InitComboBox(ComboBox box, RuleColumn rcolumn) { if (box == null || rcolumn == null) { return; } if (rcolumn.HasMapInfo) { DataMap dm = SystemContext.MapManager.FromMapInfo(rcolumn.MapInfo); if (dm != null) { box.DataSource = dm.GetMapTable(rcolumn.GetLocalType()); box.ValueMember = "Key"; box.DisplayMember = "Value"; } } box.Text = ""; }
public static DataGridViewColumn CreateDataGridViewColumn(RuleColumn rcolumn) { if (rcolumn == null) { return(null); } DataGridViewColumn gcolumn = null; switch (rcolumn.DataType) { case DataTypes.dtBoolean: gcolumn = new DataGridViewCheckBoxColumn(); break; case DataTypes.dtDateTime: gcolumn = new CalendarColumn("yyyy-MM-dd HH:mm:ss"); break; case DataTypes.dtDate: gcolumn = new CalendarColumn("yyyy-MM-dd"); break; case DataTypes.dtTime: gcolumn = new CalendarColumn("HH:mm:ss"); break; case DataTypes.dtBLOB: gcolumn = new DataGridViewImageColumn(); break; default: if (rcolumn.HasMapInfo) { DataMap dm = SystemContext.MapManager.FromMapInfo(rcolumn.MapInfo); if (dm != null) { DataTable mtable = dm.GetMapTable(rcolumn.GetLocalType()); if (mtable != null && mtable.Rows.Count > 0) { gcolumn = new DataGridViewComboBoxColumn(); DataGridViewComboBoxCell combboxcell = gcolumn.CellTemplate as DataGridViewComboBoxCell; if (combboxcell != null) { combboxcell.DataSource = mtable; combboxcell.ValueMember = "Key"; combboxcell.DisplayMember = "Value"; } } } } else if (rcolumn.HasMask) { gcolumn = new MaskedTextBoxColumn(rcolumn.Mask); } else { switch (rcolumn.UiCtrOpt) { case UICtrOpt.TextButton: gcolumn = new TextBoxButtonColumn(); break; default: gcolumn = new DataGridViewTextBoxColumn(); break; } } break; } if (gcolumn == null) { gcolumn = new DataGridViewTextBoxColumn(); } gcolumn.Name = rcolumn.ColumnName; gcolumn.HeaderText = rcolumn.Label; gcolumn.DataPropertyName = rcolumn.ColumnName; gcolumn.Width = rcolumn.Width; gcolumn.Visible = rcolumn.ListCtrlVision; //rcolumn.Visible; gcolumn.SortMode = DataGridViewColumnSortMode.Automatic; if (rcolumn.HasDisplayFormat) { gcolumn.CellTemplate.Style.Format = rcolumn.DisplayFormat; } if (gcolumn.Visible && gcolumn.Width < 100) { if (gcolumn.Width == 0) { gcolumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; } else { gcolumn.Width = 100; } } return(gcolumn); }