![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Linus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: 3 Всего: 4 |
Здравствуйте, люди добрые. Прошу руку помощи. У меня имеется DataGridView, в котором есть столбец (DataGridViewTextBoxColumn) и очень надо на месте одной из ячеек поместить ComboBox. Так как изменить тип одной ячейки этой колонки я не смог, то подумал, что можно просто создать Combobox на месте этой одной ячейки. Только тут опять неприятности. Я не знаю, как найти координаты ячейки DataGridView (чтобы налепить на это место Combobox). В самом DataGridView используются полосы прокрутки (т.е. комбобокс тоже должен "летать" вместе с остальными ячейками грида при прокрутке). Помогите кто чем может, как это реализовать...
|
|||
|
||||
| Dmitriy_Donetsk |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 28.9.2006 Репутация: нет Всего: нет |
Linux,
Вот довольно простой способ, как в любой ячейке DataGridView (в моем случае 0,0) поместить ComboBox:
И комбобокс "летает" |
||||
|
|||||
| Linus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: 3 Всего: 4 |
Dmitriy_Donetsk, спасибо Вам огромное, помогло, именно то, что надо
|
|||
|
||||
| Dmitriy_Donetsk |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 28.9.2006 Репутация: нет Всего: нет |
Linux,
Извеняюсь за поздний ответ, итак... Координаты dataGridView по которым вы кликнули мышкой можно получить:
Я так понимаю что вам подходит именно этот вариант, но можно еще использовать событие CellClick
Теперь каждой клетке dataGridView вы можете назначить свой обработчик события |
||||
|
|||||
| Linus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: 3 Всего: 4 |
Dmitriy_Donetsk, а если для редактирования ячейки пользователь не будет использовать мышь? Например, просто нажмёт на ячейке пробел. То есть как узнать координаты именно редактируемой ячейки, чтобы используя эти координаты рассчитать Location окошка, которое выскочет? Сколько я уже не смотрел различных свойств, нигде этого и не нашёл...
Заранее благодарен |
|||
|
||||
| Linus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: 3 Всего: 4 |
Ура, я нашёл! Так близко лежало, а я так долго искал)
Dmitriy_Donetsk, большое Вам спасибо за помощь |
|||
|
||||
| Dmitriy_Donetsk |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 28.9.2006 Репутация: нет Всего: нет |
Linus,
Если мы редактируем клетку в DataGridView, то единственное что мы можем получить это координаты этой клетки (номер строки и столбца); Прийдется ручками подгонять Location формы под эти номера. Используем свойство CellBeginEdit. Создаем новую форму Form2, устанавл. свойство FormBorderStyle в None. (эта форма будет выскакивать рядом с редактируемой клеткой)
Насколько я понимаю, это то, что вам требовалось, хотя как-то это сложно. не проще ли просто сделать каждую Cell в dataGridView Комбобоксом со своими значениями? Для быстроты можно использовать не DataGridViewComboBoxCell, а DataGridViewComboBoxColumn. Добавлено @ 14:07 Linus,
Congratulations |
||||||
|
|||||||
| Linus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: 3 Всего: 4 |
Мне нужно было, чтобы столбец имел тип DataGridViewTextBoxColumn, и только одна ячейка в нём была комбобоксом, и ещё, чтобы при редактировании определённых ячеек у меня выскакивало окошко для ввода 4-х чисел A,B,C,D (в окошке 4 TextBox), а после выхода из этого окна чтобы в редактируемую ячейку вывелась строка в формате A; B; C; D ("3.14; 15; 168; 123.65"). Теперь всё работает, thanx |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |