Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 12:49   #1
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию Убрать фокус с формы

Подскажите как сделать. Есть программа, висит в трее, через заданное время она выводится на экран.
Вопрос: как сделать чтоб когда она выводится, то не забирала фокус с активного окна(чтоб если я что то печатаю то я не начал печатать в открывшимся окне а продолжил там где начал).
vovik93 вне форума Ответить с цитированием
Старый 27.06.2012, 14:25   #2
VikaR
Пользователь
 
Регистрация: 01.07.2011
Сообщений: 21
По умолчанию

Если оба окна из одной твоей программы, тогда при выводе окна из трея вызывай Focus() для окна, в котором печатаешь.
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
VikaR вне форума Ответить с цитированием
Старый 27.06.2012, 14:47   #3
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от VikaR Посмотреть сообщение
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
А можно пример?
vovik93 вне форума Ответить с цитированием
Старый 27.06.2012, 15:12   #4
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от VikaR Посмотреть сообщение
Если оба окна из одной твоей программы, тогда при выводе окна из трея вызывай Focus() для окна, в котором печатаешь.
Если печатаешь в любом другом окне, то перед выводом из трея получи дескриптор этого окна с помощью WinAPI-функции GetForegroundWindow и после вывода из трея верни ему фокус с помощью SetForegroundWindow
сделал так
Код:
IntPtr hFore;
hFore = GetForegroundWindow();
Show();
SetForegroundWindow(hFore);
все равно не работает.
vovik93 вне форума Ответить с цитированием
Старый 27.06.2012, 15:23   #5
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

интернет говорит
http://stackoverflow.com/a/157843
Код:
    public class MyForm:Form
    {
        protected override bool ShowWithoutActivation
        {
            get { return true; }
        }
    }
Reskov вне форума Ответить с цитированием
Старый 27.06.2012, 15:38   #6
vovik93
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 47
По умолчанию

Цитата:
Сообщение от Reskov Посмотреть сообщение
интернет говорит
http://stackoverflow.com/a/157843
Код:
    public class MyForm:Form
    {
        protected override bool ShowWithoutActivation
        {
            get { return true; }
        }
    }
Все равно при открытии окна фокус переходит в textbox я продолжаю печать уже в него
vovik93 вне форума Ответить с цитированием
Старый 27.06.2012, 15:54   #7
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Вы открывали ссылку?? там в ответах на коментарий на выделенный коментарий
Цитата:
I also needed to set form1.Enabled = false to prevent inner controls from stealing focus
And leave TopMost off.
либо попробуйте другой способ из ответов на ссылке, там же масса вариантов, а потом обязательно отпишите какой помог Вам

Последний раз редактировалось Reskov; 27.06.2012 в 15:56.
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
InplaceEditor у StringGrid'а. Как убрать фокус TwiX Общие вопросы Delphi 2 03.06.2010 01:09
убрать фокус из ячейки DBGreed KaimNotark БД в Delphi 5 19.02.2010 07:33
Как убрать фокус со StringGrid? TwiX Общие вопросы Delphi 2 25.08.2009 01:32
Как убрать фокус с TrackBar?????? NBSTUDIO Общие вопросы Delphi 1 11.08.2009 16:24
Убрать фокус со всех компонентов ? chandrasecar Общие вопросы Delphi 5 21.12.2008 00:56