powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView Row Visible = false
15 сообщений из 15, страница 1 из 1
DataGridView Row Visible = false
    #36564409
demo_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как можно сделать что бы в гриде rows сделать инвизибле.
Хочу сделать так.
DataGridViewBand band = grids.Rows[rowindex];
band.Visible = false;

Но выдает ошибку
Строку, связанную с положением CurrencyManager, нельзя сделать невидимой.

Грид создаю обычным путем.
grids = new DataGridView();
grids.RowHeadersVisible = false;
grids.AllowUserToAddRows = false;
grids.AllowUserToDeleteRows = false;
ds = new DataSet();
da = new SqlDataAdapter();
bs = new BindingSource();
da.SelectCommand = GenerateSqlCommand(conn);
da.Fill(ds,"table");
bs.DataSource = ds.Tables["table"];
grids.DataSource = bs;
this.Controls.Add(grids);
Как можно исправить?!
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #36564476
MikeKat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, можно удалить строку в ds.Tables["table"]
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #36564492
MikeKat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё можно создать дополнительный столбец в дататэйбл и по нему фильтровать данные.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DataGridView Row Visible = false
    #38260739
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон за некропостинг, но сам помучался, авось кому поможет

Код: c#
1.
2.
3.
4.
5.
6.
7.
CurrencyManager cManager =
                band.BindingContext[band .DataSource, band.DataMember]
                as CurrencyManager;

cManager.SuspendBinding();     
--говнокодим--
cManager.ResumeBinding();
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38260880
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вклинюсь в чужую тему.
Есть набор колонок, одна из них - checkbox. Как сделать, чтобы в пустой строке не отображался этот контрол
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38260963
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle,

Так отработает?

Код: c#
1.
2.
3.
4.
5.
foreach(DataGridViewRow r in dgv.rows)
{
if (r.cell[индекс колонки по которой определяется "пустота" строки]=="")
   r.cell[индекс колонки чекбокса] = new = new DataGridViewTextBoxCell();
} 
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38260964
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
один "= new" лишний
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261548
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEFullKettle,

Так отработает?

Код: c#
1.
2.
3.
4.
5.
foreach(DataGridViewRow r in dgv.rows)
{
if (r.cell[индекс колонки по которой определяется "пустота" строки]=="")
   r.cell[индекс колонки чекбокса] = new = new DataGridViewTextBoxCell();
} 


Это не совсем то. Мне не надо менять тип ячейки.
Когда строка совсем пустая, в ней отображаются checkbox, а мне не надо чтобы они отображались.
Когда строка в фокусе, тогда нужно чтобы они появлялись.
Хотя можно сделать сначала тип TexBox с пустым значением, а когда в "фокусе" - установить обратно на checkbox. Может есть возможность просто скрыть их?
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261597
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle,
А как Вы скроете ячейку из таблицы? Атрибут visible у ячейки readonly. Что на ее месте отображать? Черные пиксели? А если на ее месте отображать пустую ячейку, то это DataGridViewTextBoxCell и есть. Я, лично, самым очевидным путем вижу изменение типа ячейки по необходимости.
Как вариант можно свой класс написать, наследуемый от DataGridViewComboBoxCell.
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261637
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEFullKettle,
А как Вы скроете ячейку из таблицы? Атрибут visible у ячейки readonly. Что на ее месте отображать? Черные пиксели? А если на ее месте отображать пустую ячейку, то это DataGridViewTextBoxCell и есть. Я, лично, самым очевидным путем вижу изменение типа ячейки по необходимости.
Как вариант можно свой класс написать, наследуемый от DataGridViewComboBoxCell.
Может попробовать отталкиваться от этого варианта:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void Tab_CellClick(object sender, DataGridViewCellEventArgs e)
{
            Tab.AllowUserToAddRows = false;
}

private void Tab_Click(object sender, EventArgs e)
{
            Tab.AllowUserToAddRows = true;
}
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261668
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettle
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void Tab_CellClick(object sender, DataGridViewCellEventArgs e)
{
            Tab.AllowUserToAddRows = false;
}

private void Tab_Click(object sender, EventArgs e)
{
            Tab.AllowUserToAddRows = true;
}


Никогда так не пробовал (да и необходимости не возникало), и что, реально перестает отображаться ячейка как чекбокс?
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261679
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEFullKettle
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void Tab_CellClick(object sender, DataGridViewCellEventArgs e)
{
            Tab.AllowUserToAddRows = false;
}

private void Tab_Click(object sender, EventArgs e)
{
            Tab.AllowUserToAddRows = true;
}


Никогда так не пробовал (да и необходимости не возникало), и что, реально перестает отображаться ячейка как чекбокс?
Не знаю как правильно сказать ))) Не прорисовывается в строке, которая "готовиться" к заполнению. Только вот условия надо добавить и события может другие подобрать. Мне надо было не все чекбоксы скрыть, а именно на добавляемой строке
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261742
ALOTE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а
Код: c#
1.
currentRow.Tab.AllowUserToAddRows = false;


не работает?
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261787
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FullKettleALOTEFullKettle,

Так отработает?

Код: c#
1.
2.
3.
4.
5.
foreach(DataGridViewRow r in dgv.rows)
{
if (r.cell[индекс колонки по которой определяется "пустота" строки]=="")
   r.cell[индекс колонки чекбокса] = new = new DataGridViewTextBoxCell();
} 


Это не совсем то. Мне не надо менять тип ячейки.
Когда строка совсем пустая, в ней отображаются checkbox, а мне не надо чтобы они отображались.
Когда строка в фокусе, тогда нужно чтобы они появлялись.
Хотя можно сделать сначала тип TexBox с пустым значением, а когда в "фокусе" - установить обратно на checkbox. Может есть возможность просто скрыть их?Думаю это делается переопределением стандартной отрисовки.
...
Рейтинг: 0 / 0
DataGridView Row Visible = false
    #38261795
FullKettle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALOTEа
Код: c#
1.
currentRow.Tab.AllowUserToAddRows = false;


не работает?
Таких свойств нет
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView Row Visible = false
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]