|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Надо: Установить ширину столбца в ноль и исключить любые способы сделать столбец видимым. API-реализация: Как лучше реализовать Add/Remove Columns на Listview? В .NET есть механизм? Предполагаю, что: ListView.ColumnWidthChanging - событие Происходит при изменении ширины столбца. Это событие позволяет ... а также при необходимости отменить это событие путем установки для свойства Cancel значения true. Оно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 16:59 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77, если нужен невидимый столбец, то просто удаляй его ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 17:17 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
pationесли нужен невидимый столбец, то просто удаляй его Так нельзя. Если данные не видны, это не значит что они не используются при каких-то действиях, там ID записи например может быть. Надо именно так как я сказал. Это стандартная конструкция (пользователь выбирает, что отображать, а что нет, и в какой последовательности - на свой вкус). Счас, попробую, думаю то что я предположил по делу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 17:27 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77pationесли нужен невидимый столбец, то просто удаляй его Так нельзя. ... там ID записи например может быть... Ъ! Доколе! Ответьте на вопрос - "там" это где? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 17:30 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77Если данные не видны, это не значит что они не используются при каких-то действиях Отдели данные от представления ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 18:08 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77Счас, попробую, думаю то что я предположил по делу.Слушай, а зачем задавать вопросы до того, как испробовал все подходящие варианты? Тут вообще кода меньше, чем ты потратил на эти два поста. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 18:27 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
buserДмитрий77Так нельзя. ... там ID записи например может быть... Ответьте на вопрос - "там" это где?Там - это в LVitem.subitems (тот, чей столбец надо скрыть) Например, удаляя строчку, надо удалить запись из БД, сразу выбрав ее по ID А удаляя столбец, я создаю необходимость писать кучу дополнительного кода при выполнении разных действий (например пользователь решил отобразить столбец). Так не делают. Не говоря о том, что последовательность столбцов (Column.Index а не .DisplayIndex) зарезервирована, и во избежании гемороев лучше здесь не мудрить. ИзопропилОтдели данные от представления Ты говоришь об общей стратегии. А меня конкретно здесь и сейчас интересует простой технический вопрос, достаточно четко сформулированный: Дмитрий77Надо: Установить ширину столбца в ноль и исключить любые способы сделать столбец видимым. Antonariy Слушай, а зачем задавать вопросы до того, как испробовал все подходящие варианты? Тут вообще кода меньше, чем ты потратил на эти два поста. .Net - это красивая коробка с полезными рычажками, но я то названия всех рычажков пока не знаю. Строчка то м.б. вообще одна, но я б например до этого Изопропила Marshal.StringToCoTaskMemAnsi никак не подойдёт? с ходу б не допер. А иногда надо просто влезть в эту коробку. . Там без вариантов было. Либо костыли(.Net методами) в помощь инвалиду с его рычажками(чтоб хоть как-то передвигался), либо операция (но без понимания внутреннего API устройства не получилось бы) -после чего задуманные рычажки заработали правильно. Теперь понимаешь почему я предпочитаю "родные" контролы, а не стрипы? А по сути вопроса, да 2 строчки: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Хотя один момент таки непонятен. Код: vbnet 1.
согласно документации... а также при необходимости отменить это событие путем установки для свойства Cancel значения trueуже должно быть достаточно, но без Код: vbnet 1.
не работает. И наоборот, установка e.NewWidth в нуль по здравому смыслу тоже должно работать без e.Cancel, но тоже не работает. Приходится писать обе строчки чтоб "застопорить". С другой стороны, после чекбоксов это не удивляет. Что есть то есть. Antonariy, да прав ты конечно, много полезного времени на эти посты уходит. Привычка. Зато пока пишу, лучше осознаю предмет, потом могу что-то быстро найти. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 19:27 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77, идёшь не тем путём применяй сразу общий подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 22:08 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Дмитрий77, чем грид не устроил, зачем мучить листбокс который не поддерживает связывания с данными? Только потому что он похож на инвалида из древнего mscomctl.ocx? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2013, 22:14 |
|
Listview (ReportView) Часть столбцов "скрыта" -чтоб нельзя было раздвинуть?
|
|||
---|---|---|---|
#18+
Изопропилидёшь не тем путём применяй сразу общий подход. У каждого свой путь и свой общий подход. Я путь наметил и иду по нему. Изопропилчем грид не устроил, зачем мучить листбокс который не поддерживает связывания с данными? Только потому что он похож на инвалида из древнего mscomctl.ocx? Я ориентируюсь на классические (устоявшиеся) вещи. mscomctl.ocx -это Microsoft Windows Common Controls 6.0 -действительно инвалидная надстройка для VB6, т.к. отсутствует поддержка современных стилей. Правильная надстройка если уж на то пошло - COMCTL32.OCX -Microsoft Windows Common Controls 5.0 Но это лишь надстройка, точно также как .NET -более современная настройка, не более (если говорить о контролах). Не листбокс, а ListView. И называется это List View (Windows) - MSDN - Microsoft Обновленная статья от 7/25/2013, а не от 98г., заметь. И входит в состав Windows Controls (Windows) - MSDN - Microsoft (Comctl32.dll) И заметь, грида там нет. И если честно, грид мне просто не нравится. И именно на них и основан GUI в Windows (включая Win 7, Win 8 и последующие версии, метро - отдельная тема) ,а современность определяется стилями, которые у каждой OS свои. А вот современность "родных .Net контролов" очень относительна. Если крашенные Strip-меню выглядят современно на классике, то на 7-ках и 8-ках они выглядят хреново. И никакой поддержки на уровне OS нет. Захотят .Net девелоперы - нарисуют новый стиль, не захотят не нарисуют. ListView в .NET это всего лишь обертка над API-шным. Но пользовать такие обертки удобно. И я бы не стал лезть в .NET, если б не хотел воспользоваться этими удобствами. А с другой стороны всегда можно подправить глюк в обертке, либо сделать то что в обертке не предусмотрели. То что может обертка, всегда можно сделать через API, а то что через API не заложено, обертка сделать не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2013, 02:39 |
|
|
start [/forum/topic.php?fid=20&msg=38424927&tid=1403887]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 139ms |
0 / 0 |