Разбавлю ваши холивары. Как в C# понять над какой ячейкой находится курсор. Ячейку не выделяем. Просто наводим

Статус: Offline
Реєстрація: 17.08.2005
Повідом.: 49020
Разбавлю ваши холивары. Как в C# понять над какой ячейкой находится курсор. Ячейку не выделяем. Просто наводим

Ни как не могу расколупать - де в этом больном DataGridView увидеть над каким Cell стоит курсор.
Решение в лоб - запросить координаты целлов и сравнивать над каким висит курсор - не хочется, да и долговатая процедура получится.
Примеры с
DataGrid.HitTestInfo v1 = PlaylistViev1.HitTest(е.Х, е.У);
Не пашут.
Error 3 Cannot implicitly convert type 'System.Windows.Forms.DataGridView.HitTestInfo'
to 'System.Windows.Forms.DataGrid.HitTestInfo'

Что не так?
 
Примеры с
DataGrid.HitTestInfo v1 = PlaylistViev1.HitTest(е.Х, е.У);
Не пашут.
Error 3 Cannot implicitly convert type 'System.Windows.Forms.DataGridView.HitTestInfo'
to 'System.Windows.Forms.DataGrid.HitTestInfo'

Что не так?

судя по ошибке - неправильный тип переменной, попробуй так:
DataGridView.HitTestInfo v1 = PlaylistViev1.HitTest(е.Х, е.У);
 
Ёпт... Пасиба! совершенно упустил, что в 3й версии DataGrid уже не датагрид и оне разные совсем...

А как-то можно убрать пустую "новую" строку, которая лепится снизу всегда
Она задрачивает своим видом. А сделать с ней ни чего нельзя - пустые непереданные строки бла бла бла...
 
А как-то можно убрать пустую "новую" строку, которая лепится снизу всегда
Она задрачивает своим видом. А сделать с ней ни чего нельзя - пустые непереданные строки бла бла бла...

В старом дотНете с этим можно было бороться примерно так: DataGrid байндился к DataView, а у этого DataView свойство AllowNew (или как-то так) ставилось в false.

Но по-моему уже во 2й версии в самом гриде добавили это свойство.. не помню уже, давно имел дело с ним
 
Ёпт... Пасиба! совершенно упустил, что в 3й версии DataGrid уже не датагрид и оне разные совсем...

А как-то можно убрать пустую "новую" строку, которая лепится снизу всегда
Она задрачивает своим видом. А сделать с ней ни чего нельзя - пустые непереданные строки бла бла бла...
Если не ошибаюсь в смарт DataGridView таге убрать AllowNewRows.
 
Не не не. Ни каких свойств схожих по написанию с AllowNew не видится, да и не имеется у DataGridView.
Вопрос - как на самом деле теперь оно называется?

Угу, понял, надо убрать галочку Enable Adding в выпадающем меню гридА.
Только теперь прийдется переписывать автозаполнение текста вновь создаваемой ячейки. Ну да хрен с ним.
 
Свойство AllowUserToAddRows
 
Свойство AllowUserToAddRows
Эээммм... это несколько мимо кассы. Есть же концепция осмысленности имён. И тут она работает - AllowUserToAddRows=позволить пользователю добавлять строки. Ни какого отношения к пустому неконтролируемому убожеству внизу таблицы оно не имеет.
Убожество убиватся так как выше написано - убиранием тэга "Enable Adding".
 
Убожество убиватся так как выше написано - убиранием тэга "Enable Adding".
Сээр, ну будьте же внимательнее. :)
Галочка "Enable Adding" как раз и изменяет свойство AllowUserToAddRows.
И осмысленность опять таки полная - "разрешить добавление (юзеру строки)"
 
Сээр, ну будьте же внимательнее. :)
Галочка "Enable Adding" как раз и изменяет свойство AllowUserToAddRows.
И осмысленность опять таки полная - "разрешить добавление (юзеру строки)"

XZ.. Я даже не хнаю что сказать.
У тя какое студио? У меня 2008 и там это 2 РАЗНЫЕ свойства. Я вчера, вообще-то, проверил прежде чем писать.

Речь шла о пустой "новой" строке, которую НЕ СОЗДАЕТ ЮЗЕР. Она создается автоматически и всегда показывается внизу таблицы, вызывая ошибки при попытке её удалить и заставляя вводить доп. проверки при уделении на предмет своего наличия в удаляемых.
 
Прошу прощения за грубость,но когда речь идет о функциях,командах,операторах,
действия которых четко определены и описаны,и на основе которых выстраивается четкая последовательность действий программиста,приводящих к желаемому результату,можно ли позволять вольности типа:
вроде так должна сработать,по моему нужно изменить, а вот у бабушки пустая строка не получалась,а у дедушки в 2008 получалась, а вот галочка должна стоять в свойствах у одного,а у другого нет,потому что один делает через мастера,а второй пишет сам,и т. д.И поехало понеслось.
 

Усё правильно. Именно эта строка.
Только екзешнег мне не говорит о том как ты её убирал.

Я убираю выбирая датаГридВью->EditColumn(такая стрелочка появляется справасверху грида) и из неё выпадет меню, в котором несколько чекбоксов, один из них EnableAdding.

А свойчтво AllowUserToAddRows прекрасно доступно как свойство и ни как проблему не решает.
 
Я чего-то не понимаю, чего ты не понимаешь...

измениение датаГридВью->EditColumn == изменению свойства AllowUserToAddRows

вот этот загадочный код
private void button1_Click(object sender, EventArgs e)
{
if (dataGridView1.AllowUserToAddRows)
dataGridView1.AllowUserToAddRows = false;
else
dataGridView1.AllowUserToAddRows = true;
Text="dataGridView1.AllowUserToAddRows="+dataGridView1.AllowUserToAddRows.ToString();
}
 
Разгрёб.
У них приоритет при компиляции разный.
Если в мастере Enable Adding отключить - начинает работать AllowUserToAddRows.
Если в мастере стоит галочка энейбл - он при инициализации формы ставит ему это поле в тру независимо от того, что там я ему выставил вручную.
Программно оно кнешна меняется. но у меня не юзается, по этому я туда не лазил.
 
еще раз: смотри на свойства датагрида (можешь хоть в окошке "свойства") на свойство AllowUserToAddRows и видим его там!
суть в том, что Enable Adding лишь для того, чтобы ближе его поменять можно было.
"интерфейсный сахар" - есть такое? :)
 
еще раз: смотри на свойства датагрида (можешь хоть в окошке "свойства") на свойство AllowUserToAddRows и видим его там!
суть в том, что Enable Adding лишь для того, чтобы ближе его поменять можно было.
"интерфейсный сахар" - есть такое? :)

Я выше, вроде. написал уже.
Вся затыка в том, что Enable Adding ни как визуально не связано с AllowUserToAddRows. Понять интуитивно - невозможно. Я просто методом тыка нащупал где меняется, а проверил всязь уже десятым делом :)
 
Назад
Зверху Знизу