![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Может кто подскажет?
Нужно отлавливать событие keypress для datagrid и устанавливать текущей строку, значение в которой начинается с нажатой буквы. Да вот в чем проблема: сделал обработчик keypress, а он срабатывает не на таблице, которая отображается, а на пустом месте датагрида (т.е. вне таблицы). Отсюда вопрос - на что ставить обработчик? Или может я не с той стороны думаю? Спсб всем откликнувшимся. |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Вопрос снят
|
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
А поделиться ? Мы же тут такие любопытные |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Выглядит примерно так.
Отлавливает все, да только не так как надо. Мне-то нужно отлавливать для того, чтобы перемещаться по датагриду, а он с русским никак не связан. Показывает какая клавиша была нажата. Так что вопрос остается - как? Это сообщение отредактировал(а) sindi8 - 7.6.2005, 13:38 |
|||
|
||||
| -ser- |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
и русский показывает корректно.
а вообще, как ты себе представляешь все это. куда пользователь должен кликнуть на гриде чтобы где-то что-то нажать, да еще чтобы грид сразу же перелистнулся на нужную строку? если я правильно понял твою задачу, корректно было бы рядом с гридом поместить, например TextBox, в котором пользователь печатает буквы, ты читаешь KeyPress этого Boxa и соответственно выполняешь махинации в гриде. тут все просто. если тебе это надо, и не знаешь как, дай знать. -------------------- "Тонкая, однако, работа." |
||||
|
|||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Ну в общем-то мою задачу ты понял правтически правильно. textBox конечно должен быть. Я просто как-то об этом забыл упомянуть. Что сделал: когда пользователь что-то набирает в текстбоксе курсор в гриде перемещается на нужную позицию В чем проблема: если у меня в гриде несколько столбцов - то пользователь допустим встает на нужный ему столбец, нажимает какую-то букву - в результате этого фокус должен переноситься на textBox и в нем (текстбоксе) должен быть отображен этот введенный символ. Соответственно поиск должен быть по тому столбцу, на котором пользователь начал ввод. Отсюда вопросы: 1. как отлавливать нажатие (кейпресс у меня почему-то не отрабатывается) 2. откуда вытащить текущий номер столбца в гриде (знаю, что вопрос простой, но как-то времени у меня уже прилично съел). Спасибо. |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
по 2 - номер нашел. Что-то я затупил.
|
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
по 1.
ты используешь Студию или все вручную пишешь? нажатие KeyPress на текстбоксе. все отрабатывается.
-------------------- "Тонкая, однако, работа." |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
В студии пишу вручную
Проблема-то не в текстбоксе. Вот смотри. Я пользователь. У меня открывается форма, в которой отображен датагрид с 2 столбцами. Я в гриде курсором перемещаюсь на нужный столбец, нажимаю какую-то буквенную клавишу, после чего фокус должен автоматически переноситься на текстбокс и в текстбоксе должен отображаться символ, на который я нажал (в частности русский). Дальше все что мне нужно работает. Именно суть в том, чтоб пользователь не парился на счет того, что для поиска ему нужно перейти на текстбокс. Вот. |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
где? на чем нажимаешь? датагрид тебе либо отсортирует столбец, либо позволит что-то ввести в определенную графу. я понял твою идею. разумеется, вышеописанный случай работает если кликаешь на сам столбец. но, согласись, что-то не так в твоей задумке. тот же ComboBox по тому же принципу дает отдельное поле для ввода. -------------------- "Тонкая, однако, работа." |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Датагрид readonly. А на счет Combobox я не догнал, что ты предлагаешь. Вообще, к этому гриду я цепляю справочник, и все для родного пользователя, чтобы не из комбобокса данные выбирал а из грида. Согласись, если в справочнике несколько сотен строк - опухнеш искать все это дело в комбобоксе. |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
и пиши в него что хочешь. ComboBox я привел для аналогии работы с пользователем. может неудачно. -------------------- "Тонкая, однако, работа." |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
P.S. для общего сведения. в VS2005 есть контрол DataGridView. он корректно отрабатывает KeyPress, так как ты хочешь, на ячейке. сам проверил. -------------------- "Тонкая, однако, работа." |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
Да не надо мне ничего в грид вписывать! Я его специально ридонли сделал. Грид у меня для выбора данных. Вот смотри: Есть обычный текстбокс, enabled=false (соответственно не подсвечен и никто туда ручками ниче ввести не может), а рядом кнопочка маленькая с тремя точечками - типа выбрать значение из справочника. Вот при нажатии на эту самую кнопочку я создаю экземпляр формы, на которой как раз этот грид, подключенный к справочнику, и текстбокс для поиска по этому самому гриду. Нашел чел, что искал в гриде, нажал не ентер и получил в самом первом текстбоксе (который enabled=false) нужное значение из справочника. Вот как все выглядит. А на счет 2005 - интересно конечно, но она ведь пока только бета вроде как, и к тому же у меня ее нет. |
|||
|
||||
| sindi8 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 6.6.2005 Где: Москва Репутация: нет Всего: нет |
На самом деле все довольно просто оказалось. Вот код (если кому-то нужно).
Это сообщение отредактировал(а) sindi8 - 21.6.2005, 12:57 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [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. |