3

Silverlight アプリケーションにはボタン コントロールがあります。プログラムでマウスクリックイベントを送信できますか?

4

6 に答える 6

12

それでもやりたいのなら。これで、Silverlightバージョン3.0以降のバージョンにアップグレードして、次の操作を実行できます。

System.Windows.Automation.Peersのボタン自動化ピアを使用して、必要なことを実行できます。

if (button is Button)
{
    ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);

    IInvokeProvider ip = (IInvokeProvider)peer;
    ip.Invoke();
}
于 2010-06-22T17:09:15.253 に答える
1

セキュリティ上の理由から、Click イベントを発生させることはできません。ユーザーが気付かないうちに、強制的にフル スクリーン モードにするなどのことができるからです。Oli が言ったように、Click イベント ハンドラーを直接呼び出すことはできますが、実際に Click イベントを発生させることはできません。

于 2008-10-09T12:01:03.063 に答える
0

オートメーション ピアを使用してみてください (これをプログラムで行う必要がある場合)。

http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspxには、vb.net を使用したサンプルがあります。

理想的な方法は、ボタンクリックハンドラーと必要に応じて他のケースの両方から呼び出される共有関数を持つことです

于 2010-02-22T10:23:12.987 に答える
0

.Net でこれを行う従来の方法は、user32.dll から SendInput() を P/Invoke することです。これは、.Net フレームワークでこれを行う方法がないためです。

私は Silverlight に詳しくありませんが、Silverlight が .Net のコンパクトなサンドボックスを使用していることは知っています。相互運用性があれば、インターネット上で多くの例を見つけることができます。

于 2008-10-10T00:41:45.557 に答える
0

ページに CRUD 操作用のボタンがあります。保存、削除、または更新後、データグリッドのデータを更新する必要があります。最も簡単な方法は、クリック イベントを [その他の CRUD] ボタンから [読み取り] ボタンに送信することでした。

このコードはそのイベントを発生させます:

    private void btnSave_Click(object sender, RoutedEventArgs e)
    {
  //.....Save Operation

      //--At Finish refresh the datagrid
      btnRead_Click(btnRead, new RoutedEventArgs());
    }
于 2010-01-10T20:49:05.297 に答える
-3

Silverlight は使用していませんが、Windows.Forms および WebControls と同じプロセスだと思います。.Click(Object o, EventArgs e)ボタンのメソッドを呼び出すだけです。

于 2008-10-09T10:06:32.517 に答える