0

Silverlight ページでキーの組み合わせを押すイベントをキャプチャしました。ここで、イベント ハンドラーで、ユーザー入力を受け取って文字列変数に格納するプロンプト ボックスを表示したいと考えています。私はこのコードを入れました:

string input = System.Windows.Browser.HtmlPage.Window.Invoke("prompt", new string[] { "QUICK SEARCH", "ENTER YOUR SEARCH ITEM.." }) as string;

しかし、実行すると、「保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。」という実行時エラー AccessViolation error was unhandled が表示されます。任意のソリューション??

4

1 に答える 1

0

多くの検索を行った結果、Silverlight アプリケーションはシングル スレッド アクティビティであることがわかりました。上記のステートメントで、別のスレッドを呼び出そうとしました。この問題を解決するには、Dispatcher を使用する必要がありました。これがコードの進み方です..

this.Dispatcher.BeginInvoke(() => javaScriptpopup(sender1, e1));

次に、javaScriptPopup で、string input = System.Windows.Browser.HtmlPage.Window.Invoke("prompt", new string[] { "QUICK SEARCH", "ENTER YOUR SEARCH ITEM.." }) を string として呼び出しました。 ; 声明。

ここで、sender1 と e1 は Object と Keyeventargs 型です!!

于 2012-02-17T04:53:40.933 に答える