Silverlight アプリケーションにはボタン コントロールがあります。プログラムでマウスクリックイベントを送信できますか?
6 に答える
それでもやりたいのなら。これで、Silverlightバージョン3.0以降のバージョンにアップグレードして、次の操作を実行できます。
System.Windows.Automation.Peersのボタン自動化ピアを使用して、必要なことを実行できます。
if (button is Button)
{
ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);
IInvokeProvider ip = (IInvokeProvider)peer;
ip.Invoke();
}
セキュリティ上の理由から、Click イベントを発生させることはできません。ユーザーが気付かないうちに、強制的にフル スクリーン モードにするなどのことができるからです。Oli が言ったように、Click イベント ハンドラーを直接呼び出すことはできますが、実際に Click イベントを発生させることはできません。
オートメーション ピアを使用してみてください (これをプログラムで行う必要がある場合)。
http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspxには、vb.net を使用したサンプルがあります。
理想的な方法は、ボタンクリックハンドラーと必要に応じて他のケースの両方から呼び出される共有関数を持つことです
.Net でこれを行う従来の方法は、user32.dll から SendInput() を P/Invoke することです。これは、.Net フレームワークでこれを行う方法がないためです。
私は Silverlight に詳しくありませんが、Silverlight が .Net のコンパクトなサンドボックスを使用していることは知っています。相互運用性があれば、インターネット上で多くの例を見つけることができます。
ページに CRUD 操作用のボタンがあります。保存、削除、または更新後、データグリッドのデータを更新する必要があります。最も簡単な方法は、クリック イベントを [その他の CRUD] ボタンから [読み取り] ボタンに送信することでした。
このコードはそのイベントを発生させます:
private void btnSave_Click(object sender, RoutedEventArgs e)
{
//.....Save Operation
//--At Finish refresh the datagrid
btnRead_Click(btnRead, new RoutedEventArgs());
}
Silverlight は使用していませんが、Windows.Forms および WebControls と同じプロセスだと思います。.Click(Object o, EventArgs e)
ボタンのメソッドを呼び出すだけです。