Проблема со вспышкой в ​​веб-браузере в winform - PullRequest
1 голос
/ 06 мая 2009

У меня самая странная проблема (но не все ли проблемы программирования странные?). У меня есть winform, который содержит объект webbrowser, который открывает веб-сайт, на котором есть flash. Эта winform работает на компьютере с сенсорным экраном (я не могу найти марку или номер модели).

Вот что я знаю:

  • Flash-объекты, встроенные в веб-сайт, доступ к которому осуществляется через объект webbrowser в моей winform, не работают должным образом
  • указанные флэш-объекты реагируют только на первый «щелчок» по ним. Таким образом, веб-сайт открывается, и если я нажимаю кнопку, эта кнопка работает, но потом ничего не работает внутри флеш-объекта. Если мой первый «щелчок» пропускает кнопку, то после этого ничего не работает.
  • попытка «щелкнуть» по кнопке вспышки дает тот же ответ, что и при наведении курсора на кнопку
  • Это не проблема сенсорной части сенсорного экрана, поскольку использование мыши также дает тот же неработающий правильный ответ
  • это не проблема с веб-страницей, так как я могу открыть проводник на том же компьютере и легко перемещаться по веб-странице оттуда
  • Программа также работает на моем персональном компьютере на 100%, поэтому она не должна быть ошибкой программы
  • если это не ошибка сенсорного экрана и не ошибка программы, я не могу сейчас ничего винить.
  • ТОЧНАЯ та же программа работала на 100% на нашем старом сенсорном экране (у которого были другие проблемы, поэтому нам пришлось от него избавиться).
  • О, к тому же, просмотр только «нормальной» веб-страницы в веб-браузере в winform работает просто отлично.

Ответы [ 2 ]

1 голос
/ 01 мая 2010

У меня также возникла такая же проблема при разработке приложения для Windows.
Создайте пользовательский элемент управления следующим образом:

// CREATE A CLASS AND INHERITS TO WEBBROWSER CLASS
public partial class ucWebBrowser : WebBrowser
{
     public ucWebBrowser()
     {
        InitializeComponent();
     }

     protected override void WndProc(ref Message m)
     {
         switch (m.Msg)
         {
            case 0x021:
            case 0x201:
            case 0x204:
            case 0x207:
                base.DefWndProc(ref m);
            return;
        }
        base.WndProc(ref m);
    }
}

Теперь вы можете увидеть этот элемент управления в списке Toolbox. Теперь щелкните и перетащите этот элемент управления в свою winform вместо элемента управления веб-браузера.

1 голос
/ 20 февраля 2010

У нас была похожая ошибка, и единственное решение состояло в том, чтобы на клиентском компьютере был установлен хотя бы пакет обновления 1 для .NET 2.0.

...