コード例 #1
0
ファイル: customColumn.cs プロジェクト: khiemnv/portal
        public override void InitializeEditingControl(int rowIndex, object
                                                      initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
        {
            Debug.Print("InitializeEditingControl");
            // Set the value of the editing control to the current cell value.
            base.InitializeEditingControl(rowIndex, initialFormattedValue,
                                          dataGridViewCellStyle);
            EnumEditingControl ctl =
                DataGridView.EditingControl as EnumEditingControl;
            // Use the default row value when Value property is null.
            var        colIdx = this.ColumnIndex;
            EnumColumn parent = this.OwningColumn as EnumColumn;

            ctl.DataSource    = parent.DataSource;
            ctl.DisplayMember = parent.DisplayMember;
            ctl.ValueMember   = parent.ValueMember;
            ctl.FlatStyle     = parent.FlatStyle;
            if (this.Value == null)
            {
                ctl.Text = (string)this.DefaultNewRowValue;
            }
            else if (int.TryParse(this.Value.ToString(), out int i))
            {
                ctl.SelectedIndex = i;
            }
            else
            {
                ctl.Text = this.Value.ToString();
            }
        }
コード例 #2
0
        private void crtColumns()
        {
            int i = 0;

            foreach (var field in m_tblInfo.m_cols)
            {
#if !use_custom_cols
                i = m_dataGridView.Columns.Add(field.m_field, field.m_alias);
                var dgvcol = m_dataGridView.Columns[i];
#else
                DataGridViewColumn dgvcol;
                if (field.m_type == TableInfo.ColInfo.ColType.dateTime)
                {
                    dgvcol          = new CalendarColumn();
                    dgvcol.SortMode = DataGridViewColumnSortMode.Automatic;
                }
                //else if (field.m_lookupTbl != null)
                //{
                //    //var cmb = new DataGridViewComboBoxColumn();
                //    //DataTable tbl = field.m_lookupData.m_dataSource;
                //    //BindingSource bs = new BindingSource();
                //    //bs.DataSource = tbl;
                //    //cmb.DataSource = bs;
                //    //cmb.DisplayMember = tbl.Columns[1].ColumnName;
                //    //cmb.AutoComplete = true;
                //    //cmb.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                //    //cmb.FlatStyle = FlatStyle.Flat;
                //    //dgvcol = cmb;
                //    //dgvcol.SortMode = DataGridViewColumnSortMode.Automatic;
                //}
                else if (field.m_type == TableInfo.ColInfo.ColType.map)
                {
                    //DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();

                    Dictionary <string, int> dict = field.GetDict();
                    var dt = new DataTable();
                    dt.Columns.Add("name");
                    dt.Columns.Add("val");
                    for (int idx = 0; idx < dict.Count; idx++)
                    {
                        var newRow = dt.NewRow();
                        newRow[0] = dict.Keys.ElementAt(idx);
                        newRow[1] = idx;
                        dt.Rows.Add(newRow);
                    }
                    EnumColumn column = new EnumColumn();
                    column.DataSource    = dt;
                    column.ValueMember   = "val";
                    column.DisplayMember = "name";
                    column.FlatStyle     = FlatStyle.Flat;

                    dgvcol = column;
                }
                else
                {
                    dgvcol = new DataGridViewTextBoxColumn();
                }
                i = m_dataGridView.Columns.Add(dgvcol);
                dgvcol.HeaderText = field.m_alias;
                dgvcol.Name       = field.m_field;
#endif //use_custom_cols
                dgvcol.DataPropertyName = field.m_field;
                switch (field.m_type)
                {
#if format_currency
                case TableInfo.ColInfo.ColType.currency:
                    dgvcol.DefaultCellStyle.Format = lConfigMng.getCurrencyFormat();
                    break;
#endif
                case TableInfo.ColInfo.ColType.dateTime:
                    dgvcol.DefaultCellStyle.Format    = "dd/MM/yyyy";
                    dgvcol.DefaultCellStyle.NullValue = "";
                    break;
                }
                //show hide col
                dgvcol.Visible = field.m_visible;
            }
            //last columns
            var lastCol = m_dataGridView.Columns[i];
            lastCol.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            lastCol.FillWeight   = 1;
        }