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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ToolStripComboBox и фокус ввода 
:(
    Опции темы
snav
Дата 8.9.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Разрабатываю MDI-приложение для работы с графическим документом. Документ отображается в форме MDI-child. В главном окне (MDI-parent) есть панель ToolStrip, содержащая ToolStripComboBox. С помощью этого комбо-бокса пользователь должен менять масштаб отображения документа. Когда пользователь устанавливает в комбо-боксе новое значение, программа должна вернуть фокус форме документа (окну MDI-child). Но добиться этого никак не удается, фокус упрямо остается в комбо-боксе. Прямая передача фокуса не работает:

private void toolComboBox_KeyDown (object sender, KeyEventArgs e)
{
    if ( e.KeyCode == Keys.Enter )
        ActivMdiChild.Focus();
}

Вызов функции ActivMdiChild.Activate() тоже не помогает.
Если кто сталкивался с такой проблемой, подскажите в чем дело.

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


Ктулхувед
**


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

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



Делается всё просто.
Делаю так:
Код

private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  ChildForm child = ActiveMdiChild as ChildForm;
  child.SetFocus();
}

Где SetFocus определена в самом класе дочернего окна:
Код

public void SetFocus()
{
  textBox1.Focus();
}

Это у меня на дочернем окне поле для ввода текста находится


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
snav
Дата 12.9.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Такой способ мне уже подсказали. Я его сейчас использую. Но это всё-таки левый вариан. Хочется сделать по-нормальному... и хочется понять почему вызов ActiveMdiChild.Focus() не работает...
Хотя, есть подозрение, что это просто еще один глюк .NET 2.0.
PM   Вверх
Legolas
Дата 11.1.2008, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Freak_FB, а можно ли так сделать если метод ставишь на кликанье на самом контроле: 
Код

 private void axWindowsMediaPlayer1_ClickEvent_1(object sender, AxWMPLib._WMPOCXEvents_ClickEvent e)
        {     
            Form1 frm1 = new Form1();         
            frm1.Set_Focus();
        }

public void Set_Focus()
        {
            Form1.ActiveForm.Focus();
        }

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

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


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

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


 




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


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

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