Partager via


Activate, événement

Se produit lorsqu'un formulaire devient actif.

public event EventHandler Activate

Notes

Un formulaire devient actif dans les circonstances suivantes :

  • Une page est demandée pour la première fois. Le premier formulaire est activé ; cette activation n'a pas lieu lors de la publication.
  • La propriété ActiveForm de la page est définie par programme.
  • L'utilisateur navigue vers un formulaire via un contrôle Link dont la cible est un formulaire.

La position de cet événement dans la chaîne des événements le rend très important pour la liaison des contrôles enfants aux sources de données, ou pour la définition d'une propriété de formulaire pouvant être héritée par tous les contrôles enfants.

Exemple

L'exemple suivant montre comment utiliser l'événement Activate pour définir les propriétés d'un formulaire lors de son 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>

Voir aussi

Deactivate, événement | OnActivate, méthode

Form, classe