Activate Event
Occurs when a form becomes active.
public event EventHandler Activate
Remarks
A form becomes active under the following circumstances:
- When a page is first requested. This activates the first form; it does not occur on postback.
- When the ActiveForm property of the page is programmatically set.
- When the user navigates to a form through a Link control whose target is a form.
This event's position in the event chain makes it very important for binding child controls to data sources or for setting the property of a form that can be inherited to all child controls.
Example
The following example demonstrates how to trap the Activate event to set properties on a form upon activation.
<Script language="vb" runat="server">
' Persist across multiple postbacks.
Public Shared count As Integer = 0
Class Task
Private _TaskName As [String]
Private _Status As [String]
Public Sub New(TaskName As [String], Status As [String])
_TaskName = TaskName
_Status = Status
End Sub
Public ReadOnly Property TaskName() As [String]
Get
Return _TaskName
End Get
End Property
Public ReadOnly Property Status() As [String]
Get
Return _Status
End Get
End Property
End Class
Sub Form_Activate(sender As Object, e As EventArgs)
If count = 0 Then
message2.Text = "Welcome to the Form Sample"
Else
message2.Text = "You viewed this Form " +(count + 1).ToString() + " times."
End If
myForm.Alignment = System.Web.UI.MobileControls.Alignment.Center
myForm.Wrapping = System.Web.UI.MobileControls.Wrapping.NoWrap
myForm.BackColor = System.Drawing.Color.LightBlue
myForm.ForeColor = System.Drawing.Color.Blue
myForm.Paginate = True
' When the user clicks the submit button, switch forms.
myForm.Action = ""newpage.aspx"
SelectionList1.DataValueField = "Status"
SelectionList1.DataTextField = "TaskName"
' Create array and add the tasks to it.
Dim arr As New ArrayList()
arr.Add(New Task("Verify transactions", "Done"))
arr.Add(New Task("Check balance sheet", "Scheduled"))
arr.Add(New Task("Send report", "Pending"))
' Associate and bind the SelectionList object to the array.
' An Activate event is a good section to add data binding code for
' child controls.
SelectionList1.DataSource = arr
SelectionList1.DataBind()
End Sub
Sub Form_Deactivate(sender As Object, e As EventArgs)
count += 1
End Sub
Sub Form2_Activate(sender As Object, e As EventArgs)
yourForm.BackColor = System.Drawing.Color.Black
yourForm.ForeColor = System.Drawing.Color.White
End Sub
</script>
<mobile:form id="myForm" runat=server OnActivate="Form_Activate"
OnDeactivate="Form_Deactivate">
<mobile:label id="message1" runat=server>
Welcome to ASP.NET
</mobile:label>
<mobile:label id="message2" runat=server></mobile:label>
<mobile:SelectionList runat=server id="SelectionList1"
ForeColor=red SelectType=CheckBox/>
<mobile:link id="link1" runat=server NavigateURL=#yourForm
Text="Next Form"></mobile:link><br/><br/>
<mobile:Command runat=server Text="Submit" />
</mobile:form>
<mobile:form id="yourForm" runat=server OnActivate="Form2_Activate">
<mobile:label id="message4" runat=server>
Welcome to ASP.NET
</mobile:label>
<mobile:link id="link2" runat=server NavigateURL=#myForm Text="Back"/>
</mobile:form>
<script language="c#" runat=server>
class Task
{
private String _TaskName;
private String _Status;
public Task(String TaskName, String Status)
{
_TaskName = TaskName;
_Status = Status;
}
public String TaskName { get { return _TaskName; } }
public String Status { get { return _Status; } }
}
// Persist across multiple postbacks.
public static int count = 0;
void Form_Activate(object sender, EventArgs e)
{
if (count==0)
message2.Text = "Welcome to the Form Sample";
else
message2.Text = "You viewed this Form "
+ (count+1) + " times.";
myForm.Alignment=System.Web.UI.MobileControls.Alignment.Center;
myForm.Wrapping=System.Web.UI.MobileControls.Wrapping.NoWrap;
myForm.BackColor = System.Drawing.Color.LightBlue;
myForm.ForeColor = System.Drawing.Color.Blue;
myForm.Paginate = true;
// When the user clicks the submit button, switch forms.
myForm.Action = "newpage.aspx";
SelectionList1.DataValueField="Status";
SelectionList1.DataTextField="TaskName";
// Create array and add the tasks to it.
ArrayList arr = new ArrayList();
arr.Add (new Task ("Verify transactions", "Done"));
arr.Add (new Task ("Check balance sheet", "Scheduled"));
arr.Add (new Task ("Send report", "Pending"));
// Associate and bind the SelectionList object to the array.
// An Activate event is a good section to add data binding code for
// child controls.
SelectionList1.DataSource = arr;
SelectionList1.DataBind ();
}
void Form_Deactivate(object sender, EventArgs e)
{
count++;
}
void Form2_Activate(object sender, EventArgs e)
{
yourForm.BackColor = System.Drawing.Color.Black;
yourForm.ForeColor = System.Drawing.Color.White;
}
</script>
<mobile:form id="myForm" runat=server OnActivate="Form_Activate"
OnDeactivate="Form_Deactivate">
<mobile:label id="message1" runat=server>
Welcome to ASP.NET
</mobile:label>
<mobile:label id="message2" runat=server></mobile:label>
<mobile:SelectionList runat=server id="SelectionList1"
ForeColor=red SelectType=CheckBox/>
<mobile:link id="link1" runat=server NavigateURL=#yourForm
Text="Next Form"></mobile:link><br/><br/>
<mobile:Command runat=server Text="Submit" />
</mobile:form>
<mobile:form id="yourForm" runat=server OnActivate="Form2_Activate">
<mobile:label id="message4" runat=server>
Welcome to ASP.NET
</mobile:label>
<mobile:link id="link2" runat=server NavigateURL=#myForm Text="Back"/>
</mobile:form>
See Also
Deactivate Event | OnActivate Method
Form Class