![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Есть ли где в Microsoft Visual Studio 2005 какой-нибудь компонент списка, наподобие стандартного ListView, только нужна возможность установки на какую-нибудь колонку comboBox. Например, пользователь добавляет строку в этот ListView, а значение столбца он выбирает из списка comboBox, который появляется на месте этой ячейки.
|
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
Fighter, неа, нет такого компонента.
придется писать самому как вариант, можно использовать DataGridView |
|||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 1 Всего: 6 |
Как мне кажется, юзабилити подобного интерфейса будет плохим (хотя, я не знаю конкретного проекта, в котором подобное решение применяется). Всё же может стоит использовать два отдельных контрола? Сначала выбирать из списка, а потом уже добавлять в ListView? Хотя, как уже упоминал, в конкретном проекте это может быть и хуже =)
-------------------- 3 ГОДА НА |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Объясняю данный конкретный случай. Вот есть книга Excel с учебным планом на специальность. И есть база данных Access с преподавателями. В листе Excel выделен отдельный столбец, который будет хранить id каждого преподавателя из базы. Юзабилити данного интерфейса будет как раз в самый раз, так как когда пользователь откроет окно, перед ним появится список (ListView) с уже выбранными предметами с книги Excel. Пользователю нужно будет только к каждому предмету проставить преподавателя. И естественно, удобнее, когда кликаешь, появляется поле ввода со списком, из которого можно выбрать необходимый элемент.
А так, есть контрол iGrid for .NET, только он около 300 баксов стоит, так что мне не подойдет (у меня тока дипломный проект). Но, несмотря на это, я понял как сделать это вручную, я тестовый пример уже сделал (не до конца правда), осталось это все применить на практике. Это сообщение отредактировал(а) Fighter - 27.3.2008, 15:50 |
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
Fighter, а зачем мучаться с листВью?
как раз для таких проектов датагрид подхоит отлично! |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Ты наверное подумал о том, что датагрид - это для Access. На самом деле основные данные содержатся в книге Excel, а в Access хранятся рабочие данные. Например, мне нужно где-то хранить количество студентов в каждой группе, также нужно где-то хранить запись о том, коммерческая группа или нет, хранить список преподавателей и т.д. И из книги Excel удобнее все-таки считывать сразу в listView. |
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
Fighter, не, ну дело конечно твое, только не вижу как связано использование датагрида с акцесом
его можно с легкостью применять в любых ситуациях: в дизайнере задал тип и описалово столбцов, а потом просто добавляешь сточки как тебе удобно хотя может я чет неправильно понял |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Ну хорошо, а в дата грид можно сделать так, чтобы в отдельных столбцах вместо обычного текста появлялся comboBox? Если так можно, тогда естественно надо использовать датагрид, если тупо обычные строчки, то я уже понял как делать.
|
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
конечно можно, я об этом и пытаюсь сказать |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
||||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
так там все предельно просто: после того как настроил типы и названия колонок пишешь:
|
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Классно. Чесслово не знал. Ну а как теперь обратиться к столбцу, в котором есть компобокс и в этот компобокс напихать значений. Из вышеприведенного кода пока что ничего не понял.
|
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
Fighter, читай внимательнее
короче все как с обычным комбобоксом |
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: нет Всего: 3 |
||||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Чё та ссылки не работают. Блин, компонент хороший, нужно тока качнуть. |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Блин, не работают ссылки. Если кто может, выложите пожалуйста этот компонент в этой теме.
|
|||
|
||||
| vponomarov |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 11.8.2007 Где: Киев Репутация: 5 Всего: 12 |
||||
|
||||
| VisualProgrammerNET |
|
|||
![]() Почётный халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.10.2005 Где: Зеленоград Репутация: 1 Всего: 6 |
ты до сих пор не зарегистрирован на КодеПрожехт? =) -------------------- 3 ГОДА НА |
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Файлы скачал, но, извините, может быть за тупость. Но эти компоненты не совсем работают. Дело в том, что когда саздаешь модель таблицы и выходишь из конструктора. Потом опять заходишь в конструктор моделей таблицы и он пишет что он что-то там сделал с label и поэтому зайти не может. После сохранения и перезагрузки он опять заходит в конструктор, но если опять выйти из конструктора, то до следующей перезагрузки и не дойдет. Это первая беда, а вторая, это то, как устанавливать эти типы столбцов. Лично для своей проблемы, я уже сделал, чтобы комбобокс появлялся, единственное, это нужно отследить собитие скрола. А причин скрола может быть несколько, как нажатие мышкой на одну из кнопкок полосок, или MouseWheel. Тока именно этих событий я не видел. Пока что я далеко не зашел, объясните как работать с XPTable, или если там слишком геморно - тогда объясните как перехватить это событие скрола. Оно необходимо для изменения положения комбобокса.
|
|||
|
||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Спасибо, разобрался я все-таки с дата-гридом. Возможно я не умею устанавливать .NET компоненты, но этот же XPTable работает не полностью. И еще на codeproject я нашел штук 5 таких листвью, и ни один не стал работать. Вот тогда после этого я повнимательнее поизучал DataGridView и у меня все получилось.
Единственное, возник вопрос с дата гридом. Вот, я создал DataGridComboBoxColumn, и у этой ComboBoxColumn есть свойство DataSource и DataMember. Впринципе, я могу заполнять эти комбобоксы сам, но было бы удобнее, чтобы записи этих комбобоксов брались бы из базы данных. Т.е. у меня есть таблица id_Prepod PrepodFIO 1 Иванов И.И. 2 Петров П.П. Вот, и нужно, чтобы когда я добавил новую строчку в DataGridView, чтобы в колонке, в которой находится ComboBoxColumn, элементы ComboBox'а были бы записи из базы данных, и естественно, чтобы заполнялись элементы полем PrepodFIO, но в то же время, чтобы я мог узнать, какую именно запись выбрали, т.е. получить id_Prepod. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |