powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / выпадающий список в DataGrid
58 сообщений из 58, показаны все 3 страниц
выпадающий список в DataGrid
    #32482817
sql2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите если кто знает
задача:
есть сделки с разными типами валют USD, RUR, EUR
эти сделки загружены в DataGrid
хочется предоставить пользователю возможность менять валюту сделки, выбрав нужную из списка.

варианты решения:
1. возможно есть какой то метод или какое то, продуманное MS, решение
2. определять location ячейки на которую юзер кликнул и показать там загруженный комбо или лист бокс

1 вариант - я не в курсе есть ли такая метода и где искать?
2 вариант - как определить location ячейки?
---
подскажите пожалуйста ответ на любой из вариантов - первый конечно был бы лучше.
спасибо.
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32485173
Фотография greenapple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580403
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто-нить может на пальцах объяснить как включить в проект datagrid с комбобоксом?...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580486
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дудкин
А кто-нить может на пальцах объяснить как включить в проект datagrid с комбобоксом?...


А в чем проблема то. Что обозначает "включить в проект"?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580542
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скачал пример. хочется попробовать применить.. но возникли сложности - пытаюсь удалить лишнее из примера - ругается, в частности на датасет..
хотелось бы узнать как по шагам внедрить пример в свою программу
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580616
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о возникли сложности - пытаюсь удалить лишнее из примера - ругается, в частности на датасет..


хорошо бы писать, как именно ругается, ну и приложите этот пример к своему сообщению, посмотрим

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580677
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немножко конкретизирую.. в примере табличка создается программно, датасет тоже..
а как сделать, чтобы табличка показывала данные из датасета сгенерированного из адаптера (сделанных не программно, а перетащенных руками)?
а пример можно скачать по ссылке в сообщении тов. greenapple (оно второе сверху)
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580791
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну там уже все поделено и разбито, просто автору было лень писать tablestyle для каждого из столбцов, вот он и прогоняет их в цикле. Да и вообще рефакторить такие процедуры надо. Вам же всего лишь надо взять себе файлы:

NoKeyUpCombo.vb
DataGridComboBoxColumn.vb

И в использовать следующий код (DataGridComboBoxColumn должен быть доступен, например сделать import) :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim tableStyle As New DataGridTableStyle()
tableStyle.MappingName = "orders"  // где orders название вашей таблицы

Dim ComboTextCol As New DataGridComboBoxColumn()
ComboTextCol.MappingName = "customerID" 'must be from the grid table... ' название столбца-значение
ComboTextCol.HeaderText = "ContactCombo"  
ComboTextCol.Width =  120 

ComboTextCol.ColumnComboBox.DataSource = myDataSet.Tables("customerList").DefaultView 'dv;
ComboTextCol.ColumnComboBox.DisplayMember = "contactName"
ComboTextCol.ColumnComboBox.ValueMember = "customerID"

tableStyle.PreferredRowHeight = ComboTextCol.ColumnComboBox.Height +  2 

tableStyle.GridColumnStyles.Add(ComboTextCol) 
dataGrid1.TableStyles.Clear()
dataGrid1.TableStyles.Add(tableStyle)

Что конкретно не получается?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580823
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, счас попробую.. со стилями проблем не было..
а проблема была вот где - я кинул на форму адаптер, сгенерировал датасет, попытался вывести данные в грид из датасета (изменив конечно стиль таблицы), но не получилось..
счас попробую через import
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580881
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да этот пример вообще можно забыть, основная цель это использование в стиле своего columnstyle. Класс который реализует необходимую функциональность вынесен отдельным файлов (вернее двумя).

Ну про ошибку все еще не понятно, что за ошибка? Import здесь не обходим чтобы добраться до необходимого namespace в проекте, можно и без import все прописать.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580972
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Торможу ужасно... создаю новый проект.. пихаю в папку проекта файлы DataGridComboBoxColumn.vb и NoKeyUpCombo.vb.. пишу в коде программы (в самом начале) Imports DataGridComboBoxColumn и сразу же получаю Buil Error :(
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32580994
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что namespace называется DataGridTextBoxCombo см. файл DataGridComboBoxColumn.vb

Следовательно писать надо import DataGridTextBoxCombo

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581077
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скопировал namespace, стало
Imports DataGridTextBoxCombo
и ничего не изменилось..
а как надо добавлять эти файлы в проект?
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581116
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и ничего не изменилось..

В VS.NET:
File -> Add Existing Item

А что не изменилось? все таки вы продолжаете ничего не писать. Не компилируется? Если да? то какая ошибка?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581157
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишет, что namespace не может быть найден
даже счас
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581269
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так и не получилось c importoм, так и пишет что namespace не найден.. а не подскажете какие строчки нужно в проект скопировать чтобы заработал Combobox?
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581338
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вообще убери namespace из этих двух файлов. Главная цель это чтобы было "видно" этот класс.
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581375
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мля, прокатило вроде...
долго я тр#хался на пустом месте
так прокатило Imports combo.DataGridTextBoxCombo
спасибо
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581547
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все никак не могу с comboboxoм закончить..
делаю
ComboTextCol.ColumnComboBox.DataSource = DataSet11.Tables("linii").DefaultView 'dv;
ComboTextCol.ColumnComboBox.DisplayMember = "liniya"
ComboTextCol.ColumnComboBox.ValueMember = "id_linii" '

Выводит combobox со списком, но вставляет в поле не id, а текстовое значение и, следовательно, возникает ошибка..
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32581797
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДудкинВсе никак не могу с comboboxoм закончить..
делаю
ComboTextCol.ColumnComboBox.DataSource = DataSet11.Tables("linii").DefaultView 'dv;
ComboTextCol.ColumnComboBox.DisplayMember = "liniya"
ComboTextCol.ColumnComboBox.ValueMember = "id_linii" '

Выводит combobox со списком, но вставляет в поле не id, а текстовое значение и, следовательно, возникает ошибка..

Победил сие:
вотPrivate Sub LeaveComboBox(ByVal sender As Object, ByVal e As EventArgs)

If _isEditing Then
'MsgBox(ColumnComboBox.SelectedValue)
SetColumnValueAtRow(_source, _rowNum, ColumnComboBox. SelectedValue )
_isEditing = False
Invalidate()
End If
ColumnComboBox.Hide()

End Sub
но, блин, в таблице сначала выводятся id, когда входишь в ячейку выводится текст, а когда выходишь снова id в ячейке..
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582112
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эка, Ты, брат Дудкин, накрутил с Imports and etc.
Бросаю спасательный круг...
P.S. По моему, там всё правильно (если нет - коллеги подправят...)
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582411
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 All спасибо за помощь. я с комбобоксом вроде разобрался, только вот пока сложность.. в таблице в поле с комбобоксами выводятся id (числа вместо текста), когда входишь в ячейку появляется комбобокс и выводится текст, а когда выходишь снова id в ячейках..
тут наверное без lookup-поля, предложенным Sa, не обойтись..
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582820
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понять не могу, что за числа и что за текстовое поле, я же в примере сделал числовое поле в БД... Всё работает... Нельзя ли поподробнее (уж очень интересно, и хочется понять в чём беда)
P.S. Кстати, не могу понять, зачем выводить на обозрение юзверя поле ID???
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582903
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот счас как раз и выдумываю как можно сделать так, чтоб юзер видел не id, а текст (не 1, 2, 3.. а "Вася","Петя","Коля").. сделал через datarelation - добавил поле aaa, "расшифровывающее" id...
вот так'Создадим DataRelation...
Dim DR As DataRelation
DR = New DataRelation("NameDR", _
DataSet11.Tables("linii").Columns("id_linii"), _
DataSet11.Tables("containers").Columns("vladelets"))
' DataSet11.Tables("linii").Columns("id_linii")
DataSet11.Relations.Add(DR)


DataSet11.Tables("containers").Columns.Add("aaa", GetType(String), "Parent(NameDR).liniya")
потом сделал в стиле поле ааа как комбобокс, но был обруган - поле ааа только для чтения...
других путей решения пока не вижу...
vladgrigЯ понять не могу, что за числа и что за текстовое поле...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582981
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т. е. счас стоит вопрос - можно ли изменить значение в поле только для чтения комбобоксом... а если можно то как?
если кто сталкивался с этим то, плиз, подкиньте идею..
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32582998
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А... доехоло, у тебя типо две таблы и ты их соединить хочешь???
То есть, значения поля "владелец" из другой таблы???
Если я правильно понял, то думаю, соединять надо в БД и выводить в отдельную таблу, а загружать данные в DataSet уже из неё (хотя, это только моё предположение, я такого никогда не делал)
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583017
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. счас стоит вопрос - можно ли изменить значение в поле только для чтения комбобоксом... а если можно то как?
если кто сталкивался с этим то, плиз, подкиньте идею..


Есть некоторые идеи, будет время попробую

P.S. Так как я DataGrid не использую для редактирования записей, то и с такими проблемами не сталкиваюсь

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583028
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrigА... доехоло, у тебя типо две таблы и ты их соединить хочешь???
То есть, значения поля "владелец" из другой таблы???..
Ага, все именно так.. видимо придется отказаться от комбобокса в таких ситуевинах :( (когда в деле замешаны две таблицы)
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583056
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, все именно так.. видимо придется отказаться от комбобокса в таких ситуевинах :( (когда в деле замешаны две таблицы)


Что кажется мне:
придется открывать новую тему. С подробной постановкой задачи: что куда, и зачем. Как все должно выглядеть. + с указанием структуры БД.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583057
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa Есть некоторые идеи, будет время попробую
Sa, желаю Вам иметь побольше свободного времени :)
Думаю этот вопрос, точнее ответ на этот вопрос, многим будет интересен..
Sa P.S. Так как я DataGrid не использую для редактирования записей, то и с такими проблемами не сталкиваюсь
А как делаете Вы, если не секрет? Открываете все время новые формочки для редактирования?
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583066
Дудкин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa Ага, все именно так.. видимо придется отказаться от комбобокса в таких ситуевинах :( (когда в деле замешаны две таблицы)


Что кажется мне:
придется открывать новую тему. С подробной постановкой задачи: что куда, и зачем. Как все должно выглядеть. + с указанием структуры БД.

Код: plaintext
 uid  =  S a

открыть новую тему?
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583085
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открывый, открывай...
там и подумаем...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32583094
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как делаете Вы, если не секрет? Открываете все время новые формочки для редактирования?

Ага, типо этого.


открыть новую тему?

Да открывай уже. А то придет Артист и всех прибьет за откровенный offtop.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32586086
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощение за ООООчень длинный топик, но вопрос как раз по теме,
там в этом комбо есть одна загогулинка, которая мне сильно жить мешает...
Не поленитесь - ПОСМОТРИТЕ...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32586141
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонял что требуется:

При вводе значения в ComboBox требуется добавлять его к таблице?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32586170
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...при вводе нового значения, не содержащегося в box...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32586193
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инструкция к проблеме:

1. Запускаем проект > Debug...
2. В column "test", в самой последней строке (обозначена "*" - новая строка) вводим значение "444"
3. Нажимаем клавишу Tab (перепрыгиваем на column "test1")
4. Проблема: ...У меня значение не остаётся в ячейке... (ячейка "test",* - ПУСТАЯ)
Вопрос: как cсделать так, что бы нажимая Tab (или мышкой переходя на другой column), в ячейке ("test",*) осталось "444"???
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32586971
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, можно модифицировать ComboBox таким образом, что при вводе значения он будет добавлять запись. Только все равно не пойму для чего нужна такая функциональность?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32587522
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, я не понимаю почему это так непонятно???
вношу я изменения в грид, соответственно в ячейке с combo ввожу значение из combo... это понятно... ну, а если мне надо добавить не содержащееся в combo значение в ячейку... как поступать в таком случае????

пример: в combo значения
1
2
3
надо добавить 4 в ячейку под combo

КАК?????
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32598253
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vladgrig

Хорошая новость - сегодня небольшой проектик по вашей проблеме я накидал. Сделал AutoComplete в DataGrid при помощи TextBox и DataView

Плохая новость - проект будет доступен только в понедельник

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32598461
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa, я знаю что припух и оборзел, но нельзя ли перевести вот этот пример на нормальный человеческий язык (то бишь VB.NET...)
А то, по моему это то что нужно мне, только на C#... а я в нём ни БУМ БУМ...
Заранее благодарен...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32598486
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, это лажа. У меня по приличнее получилось

Мне понравились комментарии в файле:

// Примечание: Если не работает, то написано не мною. Dmitrys



Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32598587
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
ИМХО, это лажа. У меня по приличнее получилось

Чёрт, я заинтригован... Жду снетерпением... А то, спасу нет...
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32599013
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как и обещал выкладываю, для работы примера требуется чтобы northwind.mdb лежал на диске C.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608341
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь применить текст для воссоздания так сказать данной задачи, возникли проблемы...(пример, кот предложен для скачивания у меня не открывается)
Вот что я сделала:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
'tableStyle
        '
        'tableStyle
        '
        Dim tableStyle as new
        Me.tableStyle.DataGrid = Me.grdTPositions
        Me.tableStyle.MappingName = "TPositions"

Dim ComboTextCol As New DataGridComboBoxColumn()
        ComboTextCol.MappingName = "measurement_name" 'must be from the grid table... ' название столбца-значение
        ComboTextCol.HeaderText = "Измеритель"
        ComboTextCol.Width =  120 
        '
        ComboTextCol.ColumnComboBox.DataSource = objDS_Document_Position.Tables("TPositions").DefaultView 'dv;
        ComboTextCol.ColumnComboBox.DisplayMember = "measurement_name"
        ComboTextCol.ColumnComboBox.ValueMember = "measurement_id"
        '
        tableStyle.PreferredRowHeight = ComboTextCol.ColumnComboBox.Height + 2
        '
        tableStyle.GridColumnStyles.Add(ComboTextCol)
        grdTPositions.TableStyles.Clear()
        grdTPositions.TableStyles.Add(tableStyle)
        '
        'Me.DataGridTextBoxColumn3.Format = ""
        'Me.DataGridTextBoxColumn3.FormatInfo = Nothing
        'Me.DataGridTextBoxColumn3.MappingName = ""
        'Me.DataGridTextBoxColumn3.Width =  75 

и отдельно:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
Module Module1
    '-------------------------------------------
    'DataGridComboBoxColumn
    Public Class DataGridComboBoxColumn
        Inherits DataGridTextBoxColumn
        ' use the derived nokeyup combo to avoid tabbing problem
        Public WithEvents ColumnComboBox As NoKeyUpCombo

        Private WithEvents _source As CurrencyManager
        Private _rowNum As Integer
        Private _isEditing As Boolean

        'Fields
        'Constructors
        'Events
        'Methods
        Shared Sub New()
            'Warning: Implementation not found
        End Sub
        Public Sub New()
            MyBase.New()

            _source = Nothing
            _isEditing = False



            ColumnComboBox = New NoKeyUpCombo()
            AddHandler ColumnComboBox.Leave, New EventHandler(AddressOf LeaveComboBox)
            AddHandler ColumnComboBox.SelectionChangeCommitted, New EventHandler(AddressOf ComboStartEditing)

        End Sub
        Protected Overloads Overrides Sub Edit(ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal bounds As Rectangle, ByVal readOnly1 As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean)


            MyBase.Edit(source, rowNum, Bounds, readOnly1, instantText, cellIsVisible)
            _rowNum = rowNum
            _source = source
            ColumnComboBox.Parent = Me.TextBox.Parent
            ColumnComboBox.Location = Me.TextBox.Location
            ColumnComboBox.Size = New Size(Me.TextBox.Size.Width, ColumnComboBox.Size.Height)
            ColumnComboBox.Text = Me.TextBox.Text
            Me.TextBox.Visible = False
            ColumnComboBox.Visible = True
            ColumnComboBox.BringToFront()
            ColumnComboBox.Focus()

        End Sub
        Protected Overloads Overrides Function Commit(ByVal dataSource As CurrencyManager, ByVal rowNum As Integer) As Boolean

            If _isEditing Then
                _isEditing = False
                SetColumnValueAtRow(dataSource, rowNum, ColumnComboBox.Text)
            End If
            Return True

        End Function
        Private Sub ComboStartEditing(ByVal sender As Object, ByVal e As EventArgs)

            _isEditing = True
            MyBase.ColumnStartedEditing(sender)

        End Sub
        Private Sub LeaveComboBox(ByVal sender As Object, ByVal e As EventArgs)

            If _isEditing Then
                SetColumnValueAtRow(_source, _rowNum, ColumnComboBox.Text)
                _isEditing = False
                Invalidate()
            End If
            ColumnComboBox.Hide()

        End Sub
    End Class

    ' -------------------------------------------------------
 

End Module


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Module Module2
    Public Class NoKeyUpCombo
        Inherits ComboBox
        Private WM_KEYUP As Integer = &H101


        Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
            If m.Msg = WM_KEYUP Then
                'ignore keyup to avoid problem with tabbing & dropdownlist;
                Return
            End If
            MyBase.WndProc(m)
        End Sub 'WndProc
    End Class 'NoKeyUpCombo    
End Module

...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608395
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
маленькая поправочка для tablespace:
Код: plaintext
1.
Friend WithEvents tableStyle As System.Windows.Forms.DataGridTableStyle
в самом начале моего кода начала писать и не дописала
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608404
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И теперь ЗАРАБОТАЛО??
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608413
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да нет, я не дописала в сообщении, а там все это было
пока еще не работает
я не прошу прям досканально проверить, но если не сложно ход событий правильтный или я что-то упустила???
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608421
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему пример не работает??
Базу просит??
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608504
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такой вопрос:
если у меня грид основан на таблице TPositions (position_id, document_id...,currency_id,...) , кот яв дочереней от TDocuments.
Есть еще одна таблица TCurrency (currency_id, currency_name)
И я хочу в гриде сделать одно из полей в виде выпадающего списка, в списке кот будут все наименования валюты, а высвечиваться будет значение кот числится в табл TPositions.
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608584
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем форум как открытую книгу
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32608761
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
некорректно задала вопрос, меня интересует вот что...
чтобы получить то что я хочу, необходимо создать датасет, объяединяющий TDocuments и TPositions и отдельно датасет для TMesuarements?
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32609049
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если следовать ссылке, которую я дал, будет пример с тем что нужно
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32609798
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтобы получить то что я хочу, необходимо создать датасет, объяединяющий TDocuments и TPositions и отдельно датасет для TMesuarements?

Нет в вашем случае отдельный DataSet не нужен.
В ADO.NET нет понятия единный курсор (позиция) для какой либо таблицы, и в рамках одного DataSet таких курсоров может быть сколь угодно

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32613449
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторSa

Спасибо за помощь
автор
vladgrig

Спасибо за пример

У меня все получилось :)
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32642454
LIMir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, можно ли использовать в DataGrid выпадающий список с фиксированным набором значений, напр. ДА, НЕТ, при выборе кот. результат записывается в поле таблицы ОТВЕТ...
Заранее спасибо..
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32650061
crowler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа, прошу меня простить за тупость, однако че то я не разберусь задача та же. мой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub frmTovar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    DaTovar.Fill(dsTovar, "Tovar")

    Dim daEdIzm As New OleDb.OleDbDataAdapter("Select * From ed_izm;", cnTovar)
    daEdIzm.Fill(dsTovar, "Ed_izm")

    DataGrid1.DataSource = dsTovar.Tables( 0 )
     'Добавления комбoбокса 
    Dim ComboTextCol As New DataGridTextBoxCombo.DataGridComboBoxColumn
    With ComboTextCol
        .MappingName = "ediz"
        .HeaderText = "Единица измерения"
        .Width =  80 
        .NullText = ""
        .ColumnComboBox.DataSource = dsTovar.Tables("Ed_izm").DefaultView
        .ColumnComboBox.DisplayMember = "Name"
        .ColumnComboBox.ValueMember = "id"
        .ColumnComboBox.DropDownStyle = ComboBoxStyle.DropDownList
    End With
    DataGrid1.TableStyles.Item( 0 ).GridColumnStyles.Add(ComboTextCol)
End Sub

а когда высвечивается датагрид в нем вместо наименования ед изм стоит его ид. Если раскрыть комбобокс, то там нормально отоюражаються имена. Подскажите пожалуйста как подсветить имена в таблице?
да чуть не забыл

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
Namespace DataGridTextBoxCombo
    Public Class DataGridComboBoxColumn
        Inherits DataGridTextBoxColumn
         ' use the derived nokeyup combo to avoid tabbing problem 
        Public WithEvents ColumnComboBox As NoKeyUpCombo

        Private WithEvents _source As CurrencyManager
        Private _rowNum As Integer
        Private _isEditing As Boolean

         'Fields 
         'Constructors 
         'Events 
         'Methods 
        Shared Sub New()
             'Warning: Implementation not found 
        End Sub
        Public Sub New()
            MyBase.New()

            _source = Nothing
            _isEditing = False



            ColumnComboBox = New NoKeyUpCombo
            AddHandler ColumnComboBox.Leave, New EventHandler(AddressOf LeaveComboBox)
            AddHandler ColumnComboBox.SelectionChangeCommitted, New EventHandler(AddressOf ComboStartEditing)

        End Sub
        Protected Overloads Overrides Sub Edit(ByVal source As CurrencyManager, ByVal rowNum As Integer, ByVal bounds As Rectangle, ByVal readOnly1 As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean)


            MyBase.Edit(source, rowNum, bounds, readOnly1, instantText, cellIsVisible)
            _rowNum = rowNum
            _source = source
            ColumnComboBox.Parent = Me.TextBox.Parent
            ColumnComboBox.Location = Me.TextBox.Location
            ColumnComboBox.Size = New Size(Me.TextBox.Size.Width, ColumnComboBox.Size.Height)
            ColumnComboBox.Text = Me.TextBox.Text
            Me.TextBox.Visible = False
            ColumnComboBox.Visible = True
            ColumnComboBox.BringToFront()
            ColumnComboBox.Focus()

        End Sub
        Protected Overloads Overrides Function Commit(ByVal dataSource As CurrencyManager, ByVal rowNum As Integer) As Boolean

            If _isEditing Then
                _isEditing = False
                SetColumnValueAtRow(dataSource, rowNum, ColumnComboBox.SelectedValue)
            End If
            Return True

        End Function
        Private Sub ComboStartEditing(ByVal sender As Object, ByVal e As EventArgs)
            _isEditing = True
            MyBase.ColumnStartedEditing(sender)
        End Sub
        Private Sub LeaveComboBox(ByVal sender As Object, ByVal e As EventArgs)
            If _isEditing Then
                SetColumnValueAtRow(_source, _rowNum, ColumnComboBox.SelectedValue)
                _isEditing = False
                Invalidate()
            End If
            ColumnComboBox.Hide()
        End Sub
    End Class
End Namespace

Заранее очччень большое спасибо за помощь.
...
Рейтинг: 0 / 0
выпадающий список в DataGrid
    #32650265
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжении этой темы см:
/topic/103606&hl=#779137

Там же и готовый прикрепленный пример по теме.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
58 сообщений из 58, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / выпадающий список в DataGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]