Silverlight Trigger Events of a Control in VB.NET

This article shows you how to fire the click event of a Button control programmatically in Silverlight 2.0.
  • 2200

There are occasions when you need to fire controls events programmatically. This article shows you how to fire the click event of a Button control programmatically in Silverlight 2.0.

We have a Silverlight page with two buttons and a text box as you can see in Figure 1. When we mouse move on the Click Me button, we will fire the click event of the button and write some text in the text box. The Clear button simply clears the content of the text box.




Figure 1.

The mouse move over the Click Me button changes the text of the text box as Figure 2.




Figure 2.

Step 1. Create a Silverlight application using Visual Studio 2008.

Note: If you are new to Silverlight and don't know how to create a Silverlight application using Visual Studio 2008, Click here to learn Silverlight.

Step 2. Add two Button and a TextBox controls to the XAML page and add Click and MouseMove event handlers for the first button and Click event handler for the second button. Here is the XAML code for all three controls.  

<Button Click="ClickButton_Click" MouseMove="ClickButton_MouseMove"

                        x:Name="ClickButton" Margin="10,10,10,10" Height="30" Width="100"

                        Content="Click Me"></Button>

<TextBox x:Name="TextBox1" Height="30" Width="200"></TextBox>

<Button  x:Name="ClearButton" Margin="10,10,10,10" Height="30" Width="60"

                        Content="Clear" Click="ClearButton_Click"></Button>

Step 3. Add support to Automation namespaces to the code behind file by adding namespace references to the following two namespaces. 

' Add these two namespaces for the Automation support

Imports System.Windows.Automation.Peers
Imports System.Windows.Automation.Provider

Step 4. Now add code for the Button click and mouse move event handlers. The final code looks like following.  The key code is in ClickButton_MouseMove event handler below that creates a ButtonAutomationPeer object by passing the ClickButton ID and later calls the Invoke method of the InvokeProvider.

        '/ <summary>
        '/ ButtonMouseMove event handler for the button. On MouseMove, we will 
        '/ invoke ButtonClick event
        '/ </summary>
        '/ <param name="sender"></param>
        '/ <param name="e"></param>
        Private Sub ClickButton_MouseMove(ByVal sender As ObjectByVal e AsMouseEventArgs)
            ' Create a ButtonAutomationPeer using the ClickButton
            Dim buttonAutoPeer As ButtonAutomationPeer = NewButtonAutomationPeer(ClickButton)
            ' Create an InvokeProvider
        IInvokeProvider invokeProvider = buttonAutoPeer.GetPatternCType(as IInvokeProvider, PatternInterface.Invoke)
            ' Invoke the default event, which is click for the button

        End Sub
        '/ <summary>
        '/ Button click event handler
        '/ </summary>
        '/ <param name="sender"></param>
        '/ <param name="e"></param>
        Private Sub ClickButton_Click(ByVal sender As ObjectByVal e As RoutedEventArgs)
            TextBox1.Text = "Button Clicked"
        End Sub

        Private Sub ClearButton_Click(ByVal sender As ObjectByVal e As RoutedEventArgs)
            TextBox1.Text = String.Empty
        End Sub


More Articles

© 2020 DotNetHeaven. All rights reserved.