solo - Enviando un clic con el mouse a un botón en Silverlight 2
evento click en visual basic (6)
Existe el control de botón en la aplicación Silverlight. ¿Puedo enviar un evento de clic de mouse programáticamente?
No he usado Silverlight pero supongo que es el mismo proceso que Windows.Forms y WebControls. Solo tendrá que llamar al .Click(Object o, EventArgs e)
del botón .Click(Object o, EventArgs e)
.
No puede hacer que el evento Click se dispare por razones de seguridad, porque entonces podría hacer cosas como forzar a un usuario al modo de pantalla completa sin que lo supieran. Como dijo Oli, puedes llamar directamente al controlador de eventos Click, pero no puedes disparar un evento Click.
La forma clásica de hacer esto en .Net es presionar / Invocar SendInput () desde user32.dll, ya que no hay forma de hacerlo con el .Net framework.
No estoy familiarizado con Silverlight, pero sé que usa un sandbox compacto de .Net, por lo que si hay interoperabilidad disponible, encontrará muchos ejemplos en Internet.
Tengo botones para las operaciones de CRUD en mi página, después de Guardar, Eliminar o Actualizar Necesito actualizar los datos en una cuadrícula de datos. La manera más fácil fue enviar un evento de clic al botón "Leer", desde los botones de otros CRUD.
Este código activa ese evento:
private void btnSave_Click(object sender, RoutedEventArgs e)
{
//.....Save Operation
//--At Finish refresh the datagrid
btnRead_Click(btnRead, new RoutedEventArgs());
}
Intente utilizar Peers de Automatización (si es absolutamente necesario hacer esto programáticamente).
http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspx tiene una muestra que utiliza vb.net
La forma ideal sería tener una función compartida que se llame tanto desde el controlador de clic de botón como desde otros casos donde sea necesario.
Si aún quieres hacer eso. Ahora puede actualizar a Silverlight versión 3.0 o versiones posteriores y hacer lo siguiente:
Puede usar el par de automatización de botones de System.Windows.Automation.Peers para lograr lo que desea.
if (button is Button)
{
ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);
IInvokeProvider ip = (IInvokeProvider)peer;
ip.Invoke();
}