2012-02-16 51 views
0

我在Silverlight頁面上捕獲了按鍵組合按下事件。現在在事件處理程序中,我想顯示一個提示框,它將用戶輸入和存儲到一個字符串變量中。 我把這個代碼:SIlverlight4中的提示框

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

但是當我運行它,它讓我AccessViolation錯誤的運行時錯誤是未處理的說:「嘗試讀取或寫入保護內存這往往是其他指示內存已損壞。「 任何解決方案??

回答

0

隨着大量的搜索,我發現Silverlight applcation是一個單線程活動。 並與上述聲明我試圖調用另一個線程。 我不得不使用Dispatcher來排除這個問題。 這是怎樣的代碼不用..

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

,然後在javaScriptPopup,我打電話給我的字符串輸入= System.Windows.Browser.HtmlPage.Window.Invoke( 「提示」,新的String [] {「快速搜索「,」輸入您的搜索項「..)})作爲字符串;聲明。

這裏sender1和e1是Object和Keyeventargs類型!