Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2022, 23:39   #1
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 44
По умолчанию DataGridView и DataGridComboboxCell

Собственно вопрос, как в классе переменная string должна быть сформирована, чтобы колонка получила свойства ComboboxCell ?

Имеем такую конструкцию.

Код:
 public class MyClass
    {
        public MyClass()
        {
            MyGroups = new List<MyGroup>();
        }

        public List<MyGroup> MyGroups { get; set; }

        public class MyGroup
        {
            public MyGroup()
            {
            }

            public MyGroup(string Name, bool Active, string Code)
            {
                this.Name = Name;
                this.Active = Active;
                this.Code = Code;
             }

            [XmlAttribute] public string Name { get; set; } 
            [XmlAttribute] public bool Active { get; set; }
            [XmlAttribute] public string Code { get; set; }
        }
    }
В коде формы в public FrmDeviceProps()

private MyClass myclass = new MyClass();
myclass.MyGroups.Add(new MyClass.MyGroup()); // Создаем пустой класс для первой строки

bs.DataSource = devTemplate.CmdGroups; // тут BindingSource
dgv.DataSource = bs; // Тут собственно DataGridView

При загрузке формы считываю сериализацией xml файл и получаю DataGridView. Если поле bool то получаю колонку с чекбоксами. Но вот как получить колонку строковой переменной, скажем "Code" в виде ComboBox со списком ?
Есть вариант каким-то образом прописать в классе переменную, чтобы это поле воспринялось как ComboBox ? Ведь bool он воспринимает автоматом как колонку с чекбоксами....
melky вне форума Ответить с цитированием
Старый 08.05.2022, 00:13   #2
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 44
По умолчанию

Да, тут не используется конструктор для DataGridView, не создается колонка ComboBoxCell, она должна создаться автоматически, по аналогии с колонкой Чекбоксов при применении поля bool
melky вне форума Ответить с цитированием
Старый 12.05.2022, 16:14   #3
melky
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 44
По умолчанию

В общем решил вопрос по изменению TexBoxCell в ComboBoxCell через событие добавления строки. Добавил переменную private List<string> lCode = new List<string> { "", "val1", "val2", "val3", "val4", "val5" }; // fill the drop down items..

в public FrmDeviceProps() добавил создание события
dgvCmd.RowsAdded += new DataGridViewRowsAddedEventHandler(d gvCmd_RowsAdded);

далее

Код:
private void dgvCmd_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            switchCellCode(e);
        }
ну и
Код:
 private void switchCellCode(DataGridViewRowsAddedEventArgs e)
        {
            DataGridViewComboBoxCell c = new DataGridViewComboBoxCell();
            c.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; // убрать серый стиль ComboBoxCell, приводит к глюку лишних нажатий мыши
            c.Style.BackColor = Color.White;
            c.DataSource = lCode;

            dgvCmd[6, e.RowIndex] = c;  // change the cell с индексом 6 (Code) // тут можно по имени определить индекс колонки если будет очень надо
        }
Но вот глюк с увеличением количества нажатий при изменении стиля все портит, лечится в других местах, но не есть хорошо в принципе...
melky вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# исключение в DataGridView недопустимое значение DataGridComboBoxCell - C# AntonCH Помощь студентам 2 10.12.2017 21:33
DataGridView diallfam Помощь студентам 0 31.05.2012 00:38
dataGridView skanku C# (си шарп) 2 21.05.2012 17:49
DataGridView serenu Помощь студентам 1 15.04.2010 21:40
C#, datagridview Studento4ka Помощь студентам 0 21.11.2009 13:34