1

私は最も奇妙な問題を抱えています (しかし、すべてのプログラミングの問題が奇妙というわけではありませんか?)。フラッシュのある Web サイトを開く webbrowser オブジェクトを含む winform があります。この winform はタッチスクリーン コンピューターで実行されています (ブランドまたはモデル番号が見つかりません)。

これが私が知っていることです:

  • winform の webbrowser オブジェクトを介してアクセスされる Web サイトに埋め込まれた Flash オブジェクトが正しく機能しない
  • 上記のフラッシュオブジェクトは、それらの最初の「クリック」にのみ反応します。そのため、Web サイトが開き、ボタンを押すとそのボタンは機能しますが、その後は何も機能せず、Flash オブジェクトが機能しません。最初の「クリック」でボタンを逃した場合、その後は何も機能しません。
  • フラッシュ ボタンを「クリック」しようとすると、ボタンの上にカーソルを置いた場合と同じ応答が得られます
  • これはタッチ スクリーンのタッチ部分の問題ではありません。
  • 同じコンピューターでエクスプローラーを開いて、そこから問題なく Web ページをナビゲートできるため、これは Web ページの問題ではありません。
  • このプログラムは私のパソコンでも 100% 正しく動作するので、プログラムのせいではありません。
  • それがタッチスクリーンのせいでもプログラムのせいでもないのなら、今のところ何も責めることはできません。
  • まったく同じプログラムが、古いタッチ スクリーンで 100% 機能しました (別の問題があったため、削除する必要がありました)。
  • ああ、また、winform の Web ブラウザーで「通常の」Web ページだけをサーフィンしても問題なく動作します。
4

2 に答える 2

1

同様のエラーが発生しました。唯一の解決策は、少なくとも.NET2.0のサービスパック1がクライアントマシンにインストールされていることを確認することでした。

于 2010-02-19T21:01:44.747 に答える
1

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);
    }
}

これで、ツールボックス リストにこのコントロールが表示されます。このコントロールをクリックして、webbrowser コントロールの代わりに winform にドラッグします。

于 2010-05-01T07:15:51.680 に答える