Начал можно сказать впервые использовать DataGrid для серьезного оформления WinForms приложений. И созрело у меня два вопроса, на которые ответов я пока не нашел
1. Например в гриде два столбца(не важно сколько). Так вот заполняют они далеко не весь грид, а только его часть. Во многих приложениях оставшуюся часть грида заполняет пустая колонка. Без названия и данных. Подскажите пожалуйста, как такую колонку можно добавить в DataGrid?
2. Опять таки во многих приложениях когда в грид не весь заполнен по строкам, то оставшиеся клетки заполняются пустыми ячейками. Как подобным образом можно заполнить DataGrid?
В качестве источника данных для DataGrid используется DataTable, которая берется из DataSet.
Буду очень благодарен за советы.
ЗЫЖ по возможности нехотелось бы применять Grid'ы от других разработчиков. Хочется все сделать на стандартном гриде
02.09.05 18:37: Перенесено модератором из '.NET' — IT
Здравствуйте, Casy, Вы писали:
C>Начал можно сказать впервые использовать DataGrid для серьезного оформления WinForms приложений. И созрело у меня два вопроса, на которые ответов я пока не нашел
C>1. Например в гриде два столбца(не важно сколько). Так вот заполняют они далеко не весь грид, а только его часть. Во многих приложениях оставшуюся часть грида заполняет пустая колонка. Без названия и данных. Подскажите пожалуйста, как такую колонку можно добавить в DataGrid?
C>2. Опять таки во многих приложениях когда в грид не весь заполнен по строкам, то оставшиеся клетки заполняются пустыми ячейками. Как подобным образом можно заполнить DataGrid?
Все возможно, в зависимости от того насколько оно нужно .
Все что ты хочешь можно сделать дорисовкой. Советую сделать свой грид наследовав стандартный, в нем переопределить WndProc и на WM_PAINT дорисовать все что нужно (можно даже логотипчики добавить %) )
C>В качестве источника данных для DataGrid используется DataTable, которая берется из DataSet.
C>Буду очень благодарен за советы.
C>ЗЫЖ по возможности нехотелось бы применять Grid'ы от других разработчиков. Хочется все сделать на стандартном гриде
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
-----------------------------------------
тут может быть ваша реклама
Здравствуйте, nauro, Вы писали:
N>Все возможно, в зависимости от того насколько оно нужно . N>Все что ты хочешь можно сделать дорисовкой. Советую сделать свой грид наследовав стандартный, в нем переопределить WndProc и на WM_PAINT дорисовать все что нужно (можно даже логотипчики добавить %) )
Так я и делаю свой грид
Вот на счет приросовки... второе конечно прорисовкой сделать можно, и скорее всего это единственный способ. А вот с первым... По моему должно быть какое-то свойство. Ведь это вполне стандартно, и очень много где встречается
Здравствуйте, Casy, Вы писали:
C>Здравствуйте, nauro, Вы писали:
N>>Все возможно, в зависимости от того насколько оно нужно . N>>Все что ты хочешь можно сделать дорисовкой. Советую сделать свой грид наследовав стандартный, в нем переопределить WndProc и на WM_PAINT дорисовать все что нужно (можно даже логотипчики добавить %) )
C>Так я и делаю свой грид
C>Вот на счет приросовки... второе конечно прорисовкой сделать можно, и скорее всего это единственный способ. А вот с первым... По моему должно быть какое-то свойство. Ведь это вполне стандартно, и очень много где встречается
Я бы вобще не добавлял никаких колонок пустых а в том же WndProc на WM_RESIZE менял ширину существующих колонок пропорционально.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
-----------------------------------------
тут может быть ваша реклама
Здравствуйте, nauro, Вы писали:
N>Я бы вобще не добавлял никаких колонок пустых а в том же WndProc на WM_RESIZE менял ширину существующих колонок пропорционально.
Боюсь, что при изменении ширины колонок, в WndProc грида WM_RESIZE не приходит.
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, nauro, Вы писали:
N>>Я бы вобще не добавлял никаких колонок пустых а в том же WndProc на WM_RESIZE менял ширину существующих колонок пропорционально.
_FR>Боюсь, что при изменении ширины колонок, в WndProc грида WM_RESIZE не приходит.
да так и есть, неподумал, оно происходит при изменении размеров формы и ее состояния, но можно тогда воспользоватся все тем же WM_PAINT
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
-----------------------------------------
тут может быть ваша реклама
Здравствуйте, nauro, Вы писали:
N>>>Я бы вобще не добавлял никаких колонок пустых а в том же WndProc на WM_RESIZE менял ширину существующих колонок пропорционально.
_FR>>Боюсь, что при изменении ширины колонок, в WndProc грида WM_RESIZE не приходит. N>да так и есть, неподумал, оно происходит при изменении размеров формы и ее состояния, но можно тогда воспользоватся все тем же WM_PAINT
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, nauro, Вы писали:
N>>>>Я бы вобще не добавлял никаких колонок пустых а в том же WndProc на WM_RESIZE менял ширину существующих колонок пропорционально.
_FR>>>Боюсь, что при изменении ширины колонок, в WndProc грида WM_RESIZE не приходит. N>>да так и есть, неподумал, оно происходит при изменении размеров формы и ее состояния, но можно тогда воспользоватся все тем же WM_PAINT
_FR>А почему не событием Paint?
а какая разница? тем более что надо сначала подписатся, а тут просто переопределить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
-----------------------------------------
тут может быть ваша реклама
Здравствуйте, nauro, Вы писали:
N>>>..., но можно тогда воспользоватся все тем же WM_PAINT
_FR>>А почему не событием Paint?
N>а какая разница? тем более что надо сначала подписатся, а тут просто переопределить.
А есть еще варианты, для добавления колонки, кроме перехвата и пропорционального растяжения. У меня сейчас как раз сделано на гридресайз(он размерами привязан к форме, и изменяется вместе с ней) пропорциональное растяжение. Но во первых это не красиво, отличается от общих стандартов интерфейса и достаточно медленно