john1990_1 Ответов: 1

Как сосредоточиться на текстовом поле страницы Google translate на языке C#?


Я знаю так много, но это не работает, кроме как в первый раз, когда показывается форма...

Что я уже пробовал:

switch (e.KeyCode)
            {
                case Keys.F1:
                    e.Handled = true;

                    formMain.webBrowserMain.Navigate(@"translate.google.com");

                    formMain.TopMost = true;

                    formMain.WindowState = FormWindowState.Minimized;
                    formMain.Show();
                    formMain.WindowState = FormWindowState.Normal;
                    formMain.BringToFront();

                    formMain.panelMain.Enabled = false;
                    formMain.Focus();
                    formMain.panelMain.Enabled = true;
               
                    
                    formMain.webBrowserMain.Focus();
                    
                    break;
            }



а это:


private void webBrowserMain_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            
            if (webBrowserMain.ReadyState == WebBrowserReadyState.Complete)
            {
                int numOfTries = 0;
            repeat:
                if (numOfTries < 10)
                {
                    try
                    {
                        webBrowserMain.Document.Window.ScrollTo(0, 0);
                        webBrowserMain.Document.GetElementById("source").Focus();
                    }
                    catch
                    {//if the document hasn't loaded yet
                        numOfTries++;
                        System.Threading.Thread.Sleep(40);
                        goto repeat;
                    }
                }
            }
        }

[no name]

"это не работает иначе, чем при первом отображении формы", - именно поэтому вы запускаете свой код в отладчике, чтобы узнать, почему. Тогда вы могли бы дать нам соответствующую информацию, а не говорить "не работает".

john1990_1

я получаю ошибки сценария, как будто код запускается до того, как документ полностью завершен.

[no name]

Хорошо, подождите, пока документ не завершит загрузку. Не знаю, почему вы думаете, что мы можем видеть ваш экран, чтобы увидеть ошибки, которые вы видите. Мы не можем запустить ваш код для вас.

john1990_1

я использую 2 способа убедиться, что документ завершен, как вы видите выше (DocumentCompleted и ReadyState), и все же код работает без завершения документа, не сделаете ли Вы программу для меня, пожалуйста? (проверьте другой комментарий)

john1990_1

Кто-нибудь, пожалуйста, сделайте это приложение, которое показывает окно Google Translate, когда вы нажимаете F1 и фокусируетесь на текстовом поле ввода, так что вы переводите, потому что программное обеспечение для перевода Babylon имеет технические проблемы с отставанием Windows, и я не могу найти альтернативу.... программа была бы очень полезной и известной... сделайте статью.. Ладно?

1 Ответов

Рейтинг:
9

john1990_1

Я решил ее, сделав
formMain.Активировать();