Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - DataGridView с Checkbox

Ответить
Настройки темы
.NET - DataGridView с Checkbox

В Поисках Истины


Сообщения: 802
Благодарности: 135


Конфигурация

Профиль | Отправить PM | Цитировать


Здрасти) Собственно такой вопрос : Есть DataGridView(например, из 2х колонок, одна типа - текст, другая - чекбокс)!Таблица ни с чем не связана!Данные вносятся свободно, при помощи :

Код: Выделить весь код
for (int j = 0; j < 20; j++)
{
       DataGridView.Rows.Add(j.ToString(),false);
}
При выполнение, все заносится в таблицу!Но вот при нажатии на чекбокс, он не меняется!Что нужно сделать?Обрабатывать событие клика на ячейке?или можно как то по другому?Подскажите пожалуйста!

Отправлено: 08:23, 14-10-2010

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


а в поиске пошукать? http://www.google.com/search?sourcei...&client=ie9-lb
и вот тут еще:

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 08:42, 14-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Delirium, Да я искал, но чет так и не разобрался ((

Смену чекбоксов сделал так :

Код: Выделить весь код
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView1[e.ColumnIndex, e.RowIndex].Value.GetType() == Type.GetType("System.Boolean"))
            {
                if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == true)
                {
                    dataGridView1[1, e.RowIndex].Value = false;
                }
                else
                {
                    dataGridView1[1, e.RowIndex].Value = true;
                }
            }
        }
является ли такой метод рациональным?или нужно что то другое?

Последний раз редактировалось LilLoco, 14-10-2010 в 10:35.


Отправлено: 09:51, 14-10-2010 | #3


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
является ли такой метод рациональным? »
Ну можно и так, почему нет. Один нюанс - если включена возможность перестановки столбцов и переставить местами столбы, то вылетит исключение о несоответствии типов (true и string). Чтобы избежать такого, вместо dataGridView1[1, e.RowIndex] лучше писать dataGridView1["Имя столбца", e.RowIndex]

А, ну и если циклах (if, for. и т.д.) используется всего одна строка, то скобки фигурные не нужны. Т.о. твой код можно написать как:
Код: Выделить весь код
if (dataGridView1[e.ColumnIndex, e.RowIndex].Value.GetType() == Type.GetType("System.Boolean"))
             if ((bool)dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == true)
                dataGridView1[1, e.RowIndex].Value = false;
            else
                    dataGridView1[1, e.RowIndex].Value = true;

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:06, 14-10-2010 | #4


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Delirium:
А, ну и если циклах (if, for. и т.д.) используется всего одна строка, то скобки фигурные не нужны »
Это знаю но уже дело привычки
Цитата Delirium:
Чтобы избежать такого, вместо dataGridView1[1, e.RowIndex] лучше писать dataGridView1["Имя столбца", e.RowIndex] »
Учел, моя ошибка! Спасибо!

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 13:03, 14-10-2010 | #5


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Эм, дабы не создавать новой темы, напишу сюда же!
Сделал закрашивание строк, закрашивая в цикле отдельно каждую ячейку строки!Возможно ли как нибудь закрасить сразу целиком строку?Или все таки при помощи цикла?

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 15:49, 14-10-2010 | #6


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
row.DefaultCellStyle.BackColor = Color.FromArgb(argb);
где row = DataGridView1.Rows[row_num].

это если цвет(argb) задан как #2d3a1c, например. Если же стандартный цвет, то код такой:
Код: Выделить весь код
row.DefaultCellStyle.BackColor = Color.FromName("Red");

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:21, 15-10-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - DataGridView с Checkbox

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - DataGridView и C# Efsey Программирование и базы данных 3 22-09-2010 07:21
Разное - CheckBox! Определение хэндла! LilLoco Программирование и базы данных 9 11-09-2010 14:37
Delphi - checkbox в dbgrid chikara Программирование и базы данных 1 16-08-2010 22:41
VBA - DataGridView MuCTEP Программирование и базы данных 9 23-07-2008 13:52
Visual Basic + CheckBox Artya Программирование и базы данных 3 26-03-2003 13:23




 
Переход