Deactivate Event
Occurs when an active form becomes inactive.
public event EventHandler Deactivate
Remarks
A form becomes inactive under the following circumstances:
- When the ActiveForm property of the page is programmatically set to another form
- When the user navigates to a form through a Link control whose target is a form
If neither of these actions occurs, the active form will never receive a Deactivate event. This event's position in the event chain makes it very important in resetting the child controls, data set, or global variables.
Example
The following example demonstrates how to trap the Deactivate event to clear the SelectionList.
[Visual Basic]
<SCRIPT language="vb" runat="server">
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
' Persist across multiple postbacks.
Public Shared count As Integer = 0
Dim arr As ArrayList
Sub Form_Activate(sender As Object, e As EventArgs)
If count = 0 Then
message2.Text = "welcome Welcome to Form Sample"
Else
message2.Text = "you You r viewing 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"
If Not IsPostBack Then
SelectionList1.DataValueField = "Status"
SelectionList1.DataTextField = "TaskName"
' Create an array and add the tasks to it.
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.
SelectionList1.DataSource = arr
SelectionList1.DataBind()
End If
End Sub
Sub Form_Deactivate(sender As Object, e As EventArgs)
SelectionList1.Items.Clear()
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;
ArrayList arr;
void Form_Activate(object sender, EventArgs e)
{
if (count==0)
message2.Text = "Welcome to 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 an array and add the tasks to it.
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.
SelectionList1.DataSource = arr;
SelectionList1.DataBind ();
}
void Form_Deactivate(object sender, EventArgs e)
{
SelectionList1.Items.Clear();
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
Activate Event | OnDeactivate Method
Form Class