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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с фокусом DataGrid 
:(
    Опции темы
claster
Дата 9.2.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ есть такая проблема, надо программным путем передать фокус на TextBox в то время как он находится на ячейке в гриде. При событии изменения ячейки(CurentCellChange) вывожу MEssageBox(MyGrid.Focused).Он постоянно False,то есть я бегаю по ячейкам в гриде, а грид мне говорит ,что фокус не на нём .Вызываю TextBox.Focus(),после чего пытаюсь ввести свои данные в textBox,а он их вводит в ячейку грида,на которой был фокус последний раз.Зараннее спасибо.
PM MAIL   Вверх
informatik
Дата 9.2.2008, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Привет claster 


Давай ка код посмотрим...
--------------------
namespace informatik
PM MAIL   Вверх
claster
Дата 9.2.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код


//обработчик изменения текущей ячейки
private void PrihodGrid_CurrentCellChanged(object sender, System.EventArgs e)
{
    //вывожу есть ли фокус на гриде или его нет
    MessageBox.Show(PrihodGrid.Focused.ToString());

    textBox1.Focus();

}



В MessageBoxe постоянно False,то есть я меняю выделенную ячейку на гриде,а грид говорит мне,что на нём нет фокуса.


После выполнения данного кода фокус не уходит с выделенной ячейки на TextBox. Выделенная ячейка продолжает быть выделенной. Когда начинаю что-то набирать на клавиатуре, оно продолжает набиратся в ячейку, а по идее должно добавляться в TextBox.


Код

private void PrihodGrid_CurrentCellChanged(object sender, System.EventArgs e)
{

            this.ActiveControl = textBox1;

}


Тоже не помогает.







Это сообщение отредактировал(а) claster - 9.2.2008, 17:55
PM MAIL   Вверх
informatik
Дата 9.2.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Страннно, если все прям так как есть, то все должно рабоать (даже проверил).
Это точно весь код, может есть еще какие-то строки??
--------------------
namespace informatik
PM MAIL   Вверх
claster
Дата 9.2.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это точно весь код,весь дополнительный код закоментарил.Оствил только эти строки.Но фокус не уходит, точне если смотреть в отладке обработчик изменения текущей ячейки отрабатывает и ставит фокус текстбоксу,но после обработчика он опять  возвращается в грид. Если есть возможность informatik покажи пожалуста код,или может какие-нибудь свойства в гриде поставил. 

Может ты меня неправильно понял?
Ты хочешь сказать ,что при клике мышкой на ячейке грида фокус у тебя переходит в TextBox?

Это сообщение отредактировал(а) claster - 9.2.2008, 21:24
PM MAIL   Вверх
informatik
Дата 9.2.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я тебя прекрасно понял claster.
Код у меня тот же самый я просто добавляю DataGrid, добаляю тот же самый код в событие CurrentCellChanged, и все работает.. 
Ты по любому чегото недосмотрел, или дал закоментарио не весь код...

Цитата

Это точно весь код,весь дополнительный код закоментарил.Оствил только эти строки.Но фокус не уходит, точне если смотреть в отладке обработчик изменения текущей ячейки отрабатывает и ставит фокус текстбоксу,но после обработчика он опять  возвращается в грид.


Если обработчик работает нормально, значит после этого обработчика у тебя выполняются еще какие-то инструкции, т.е. я так подозреваю что у тебя выполняются какое-то событие у TextBox, после его фокусировки ... проверь все... 
Все дело то в в коде который выполняется после твоего события CurrentCellChanged, а не в  нем...

Добавлено через 35 секунд
Вот что я подразумевал, когда просил показать код...
--------------------
namespace informatik
PM MAIL   Вверх
claster
Дата 9.2.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всё дело в том,что сейчас удалил весь код. Обрабатываю только обработчик.Проверял по отладке ,после отрабатывания события CurentCellChanged не какой код больше не выполняется и переходит в окно. Обрабатывает таким образом:когда я изменяю ячейку,он ставит мне фокус на TextBox и сразу его оттуда уберает на ячейку грида. При быстрой смене ячеек это видно:на гриде промелькает курсор.
PM MAIL   Вверх
informatik
Дата 10.2.2008, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Всё дело в том,что сейчас удалил весь код. Обрабатываю только обработчик.Проверял по отладке ,после отрабатывания события CurentCellChanged не какой код больше не выполняется и переходит в окно. Обрабатывает таким образом:когда я изменяю ячейку,он ставит мне фокус на TextBox и сразу его оттуда уберает на ячейку грида. При быстрой смене ячеек это видно:на гриде промелькает курсор.


claster, да этого не может быть... 

Попробуй создать новый проект, вставь туда новый DataGrid и новый TextBox, а потом попробуй ... , если все работает сравни атрибуты объектов....
--------------------
namespace informatik
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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