Изменение типа столбца DataGridView после его заполнения из бд - C#
Формулировка задачи:
Здравствуйте. Есть DataGridView, который заполняется следующим способом:
Вопрос в том - как изменить тип некоторых столбцов с того что создается по умолчанию на ComboBoxColumn и присвоить какие то значения свойству Items? Ведь при создании программы столбца как бы нет, он появляется в процессе заполнения DataGridView.
Листинг программы
- ...
- CompDataAdapter = new MySqlDataAdapter("SELECT * FROM компании", Connect);
- DataSet CompDS = new DataSet();
- CompDataAdapter.Fill(CompDS);
- CompDataGridView.DataSource = CompDS.Tables[0];
- ...
Решение задачи: «Изменение типа столбца DataGridView после его заполнения из бд»
textual
Листинг программы
- foreach (XElement xxx in xe.Element("Frame").Elements())
- {
- ///
- /// Common properties
- ///
- ///
- /// Appearance
- ///
- XElement temp = xxx.Element("Appearance");
- string name = xxx.Attribute("name").Value.ToString(); ;
- bool vis = GetValue(temp.Attribute("Visible").Value.ToString());
- if (!vis) Hiddens++;
- string HeaderText = temp.Attribute("HeaderText").Value.ToString();
- string Description = temp.Attribute("Description").Value.ToString();
- string ToolTip = temp.Attribute("ToolTip").Value.ToString();
- temp = xxx.Element("Behavior");
- bool RO = GetValue(temp.Attribute("ReadOnly").Value.ToString());
- int Length = int.Parse(temp.Attribute("Length").Value);
- DataGridViewCellStyle dataGridViewCellStyle = new DataGridViewCellStyle();
- dataGridViewCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle.BackColor = System.Drawing.SystemColors.Window;
- dataGridViewCellStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
- dataGridViewCellStyle.ForeColor = System.Drawing.SystemColors.ControlText;
- dataGridViewCellStyle.SelectionBackColor = System.Drawing.SystemColors.GradientActiveCaption;
- dataGridViewCellStyle.SelectionForeColor = System.Drawing.SystemColors.InfoText;
- dataGridViewCellStyle.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- ///
- /// Data
- ///
- temp = xxx.Element("Data");
- string DataPropName = temp.Attribute("DataPropName").Value.ToString();
- ///
- /// Columns preparing
- ///
- switch (xxx.Element("Project").Attribute("Columntype").Value.ToString())
- {
- case "TextBox":
- DataGridViewTextBoxColumn tb = new DataGridViewTextBoxColumn();
- tb.Name = name;
- tb.Visible = vis;
- if (Visible)
- {
- tb.Resizable = DataGridViewTriState.True;
- tb.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
- tb.HeaderText = HeaderText;
- tb.ToolTipText = ToolTip;
- tb.DataPropertyName = DataPropName;
- tb.ReadOnly = RO;
- if(Length>0)
- tb.MaxInputLength = Length;
- tb.Tag = 1; // column type
- //tb.SortMode = DataGridViewColumnSortMode.Programmatic;
- tb.DefaultCellStyle = dataGridViewCellStyle;
- this.Columns.Add(tb);
- break;
- case "ComboBox":
- DataGridViewComboBoxColumn cb = new DataGridViewComboBoxColumn();
- cb.Name = name;
- cb.Visible = vis;
- if (Visible)
- {
- cb.Resizable = DataGridViewTriState.True;
- cb.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
- }
- cb.HeaderText = HeaderText;
- cb.ToolTipText = ToolTip;
- cb.DataPropertyName = DataPropName;
- cb.DisplayMember = temp.Attribute("DisplayMember").Value.ToString();
- cb.ValueMember = temp.Attribute("ValueMember").Value.ToString();
- cb.DataSource = FillDS(temp.Attribute("DataSource").Value.ToString());
- cb.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
- cb.Tag = 2;
- cb.ReadOnly = RO;
- cb.DefaultCellStyle = dataGridViewCellStyle;
- //cb.SortMode = DataGridViewColumnSortMode.Programmatic;
- this.Columns.Add(cb);
- break;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д