Модераторы: gambit, Partizan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView c ComboBox 
:(
    Опции темы
Fighter
Дата 26.3.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Есть ли где в Microsoft Visual Studio 2005 какой-нибудь компонент списка, наподобие стандартного ListView, только нужна возможность установки на какую-нибудь колонку comboBox. Например, пользователь добавляет строку в этот ListView, а значение столбца он выбирает из списка comboBox, который появляется на месте этой ячейки. 
PM MAIL   Вверх
vponomarov
Дата 27.3.2008, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Fighter, неа, нет такого компонента.
придется писать самому smile 
как вариант, можно использовать DataGridView


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
VisualProgrammerNET
Дата 27.3.2008, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 1
Всего: 6



Как мне кажется, юзабилити подобного интерфейса будет плохим (хотя, я не знаю конкретного проекта, в котором подобное решение применяется). Всё же может стоит использовать два отдельных контрола? Сначала выбирать из списка, а потом уже добавлять в ListView? Хотя, как уже упоминал, в конкретном проекте это может быть и хуже =)


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
Fighter
Дата 27.3.2008, 04:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Объясняю данный конкретный случай. Вот есть книга Excel с учебным планом на специальность. И есть база данных Access с преподавателями. В листе Excel выделен отдельный столбец, который будет хранить id каждого преподавателя из базы. Юзабилити данного интерфейса будет как раз в самый раз, так как когда пользователь откроет окно, перед ним появится список  (ListView) с уже выбранными предметами с книги Excel. Пользователю нужно будет только к каждому предмету проставить преподавателя. И естественно, удобнее, когда кликаешь, появляется поле ввода со списком, из которого можно выбрать необходимый элемент. 

А так, есть контрол iGrid for .NET, только он около 300 баксов стоит, так что мне не подойдет (у меня тока дипломный проект). Но, несмотря на это, я понял как сделать это вручную, я тестовый пример уже сделал (не до конца правда), осталось это все применить на практике.

Это сообщение отредактировал(а) Fighter - 27.3.2008, 15:50
PM MAIL   Вверх
vponomarov
Дата 27.3.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Fighter, а зачем мучаться с листВью?
как раз для таких проектов датагрид подхоит отлично!


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Fighter
Дата 27.3.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(vponomarov @  27.3.2008,  10:37 Найти цитируемый пост)
Fighter, а зачем мучаться с листВью?как раз для таких проектов датагрид подхоит отлично!


Ты наверное подумал о том, что датагрид - это для Access. На самом деле основные данные содержатся в книге Excel, а в Access хранятся рабочие данные. Например, мне нужно где-то хранить количество студентов в каждой группе, также нужно где-то хранить запись о том, коммерческая группа или нет, хранить список преподавателей и т.д. 

И из книги Excel удобнее все-таки считывать сразу в listView. 
PM MAIL   Вверх
vponomarov
Дата 27.3.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Fighter, не, ну дело конечно твое, только не вижу как связано использование датагрида с акцесом smile 
его можно с легкостью применять в любых ситуациях: в дизайнере задал тип и описалово столбцов, а потом просто добавляешь сточки как тебе удобно
хотя может я чет неправильно понял


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Fighter
Дата 27.3.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Ну хорошо, а в дата грид можно сделать так, чтобы в отдельных столбцах вместо обычного текста появлялся comboBox? Если так можно, тогда естественно надо использовать датагрид, если тупо обычные строчки, то я уже понял как делать. 
PM MAIL   Вверх
vponomarov
Дата 28.3.2008, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Цитата(Fighter @  27.3.2008,  22:31 Найти цитируемый пост)
Ну хорошо, а в дата грид можно сделать так, чтобы в отдельных столбцах вместо обычного текста появлялся comboBox? Если так можно, тогда естественно надо использовать датагрид, если тупо обычные строчки, то я уже понял как делать.  

конечно можно, я об этом и пытаюсь сказать smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Fighter
Дата 28.3.2008, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(vponomarov @  28.3.2008,  00:55 Найти цитируемый пост)
конечно можно, я об этом и пытаюсь сказать  


Хорошо. Вот это уже интересно. А можешь рассказать, как это делается?
PM MAIL   Вверх
vponomarov
Дата 28.3.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Цитата(Fighter @  28.3.2008,  01:34 Найти цитируемый пост)
А можешь рассказать, как это делается? 

так там все предельно просто: после того как настроил типы и названия колонок пишешь:
Код

//где-то в дизайнере сделал такое
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.Column2 = new System.Windows.Forms.DataGridViewComboBoxColumn();
// 
            // Column1
            // 
            this.Column1.HeaderText = "Column1";
            this.Column1.Name = "Column1";
            // 
            // Column2
            // 
            this.Column2.HeaderText = "Column2";
            this.Column2.Items.AddRange(new object[] {
            "i1",
            "i2",
            "i3"});
            this.Column2.Name = "Column2";

this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.Column1,
            this.Column2});

private void button3_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows.Add(new object[] {"aaa", "i2" });
        }



--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Fighter
Дата 28.3.2008, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Классно. Чесслово не знал. Ну а как теперь обратиться к столбцу, в котором есть компобокс и в этот компобокс напихать значений. Из вышеприведенного кода пока что ничего не понял. 
PM MAIL   Вверх
vponomarov
Дата 28.3.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 5
Всего: 12



Fighter, читай внимательнее smile :
Код

 this.Column2.Items.AddRange(new object[] {
            "i1",
            "i2",
            "i3"});


короче все как с обычным комбобоксом


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Plamenk
Дата 28.3.2008, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 258
Регистрация: 18.2.2003

Репутация: нет
Всего: 3



PM MAIL   Вверх
Fighter
Дата 28.3.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Цитата(Plamenk @ 28.3.2008,  11:05)
http://www.codeproject.com/KB/list/XPTable.aspx

Чё та ссылки не работают. Блин, компонент хороший, нужно тока качнуть. 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.