Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig enthält die Datei "FormCode.cs" oder "FormCode.vb", die für ein mit InfoPath 2003 kompatibles Formularvorlagenprojekt erstellt wird, den gesamten Quellcode für die Programmierlogik des Formulars. Die Vorlage für das Projekt generiert eine Klasse in der Datei "FormCode.cs" oder "FormCode.vb", vergleichbar mit den Klassen in den folgenden Beispielen, in denen Sie Initialisierungs- und Bereinigungscode sowie Handler für Formularereignisse definieren können. Die Dateien "FormCode.cs" und "FormCode.vb" wenden ein System.ComponentModel.DescriptionAttribute-Attribut auf Assemblyebene an, das die Klasse als einzige Klasse identifiziert, in der Ereignishandler implementiert werden. Das InfoPathNamespace-Attribut (das vom InfoPathNamespaceAttribute-Typ implementiert wird) wird auf eine Klasse angewendet, um die in der Klasse verwendeten XML-DOM-Auswahlnamespaces zu identifizieren. Die Namespaces, auf die in InfoPathNamespace verwiesen wird, werden vom InfoPath-Projektsystem verwaltet.
Die FormCode-Klasse selbst stellt _Startup
- und _Shutdown
-Methoden bereit, die zum Ausführen von Initialisierungs- und sauber-Up-Routinen für alle Komponenten verwendet werden, die zusätzlich zur Standardmäßigen InfoPath-Funktionalität erforderlich sind, während das Formular geöffnet ist.
Wichtig
Rufen Sie keine Member des InfoPath-Objektmodells aus den _Startup
Methoden und _Shutdown
auf. Mit diesen Methoden sollten Sie nur Member externer Komponenten initialisieren und aufrufen.
using System;
using Microsoft.Office.Interop.InfoPath.SemiTrust;
// Office integration attribute. Identifies the startup class for the form. Do not
// modify.
[assembly: System.ComponentModel.DescriptionAttribute(
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")]
namespace Template1
{
// The namespace prefixes defined in this attribute must remain synchronized with
// those in the form definition file (.xsf).
[InfoPathNamespace(
"xmlns:my='http://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-29T22-27-27'")]
public partial class FormCode
{
private XDocument thisXDocument;
private Application thisApplication;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// You can add additional initialization code here.
}
public void _Shutdown()
{
}
}
}
Imports System
Imports Microsoft.Office.Interop.InfoPath.SemiTrust
Imports Microsoft.VisualBasic
' Office integration attribute. Identifies the startup class for the form. Do not
' modify.
<Assembly: System.ComponentModel.DescriptionAttribute( _
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")>
Namespace Template1
' The namespace prefixes defined in this attribute must remain synchronized with
' those in the form definition file (.xsf).
<InfoPathNamespace( _
"xmlns:my='http://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-29T22-36-40'")> _
Public Class FormCode
Private thisXDocument As XDocument
Private thisApplication As Application
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' You can add additional initialization code here.
End Sub
Public Sub _Shutdown()
End Sub
End Class
End Namespace
_Startup (Methode)
Zusätzlich zum Schreiben von Initialisierungscode für zusätzliche Komponenten initialisiert die _Startup
Methode die Variablen und thisApplication
, die thisXDocument
in Ihrem Formularcode verwendet werden können, um auf die Member der XDocument- und Application-Klassen im InfoPath-Objektmodell zuzugreifen. Der für die Initialisierung der beiden Variablen erforderliche Code wird automatisch von der Projektvorlage generiert.
private XDocument thisXDocument;
private Application thisApplication;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// You can add additional initialization code here.
}
Private thisXDocument As XDocument
Private thisApplication As Application
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' You can add additional initialization code here.
End Sub
Die folgenden Beispiele zeigen einen einfachen Ereignishandler für eine Schaltfläche, die die thisXDocument
Variable verwendet, um auf die Warnungsmethode des UIObject-Typs zuzugreifen.
[InfoPathEventHandler(MatchPath="CTRL1_5", EventType=InfoPathEventType.OnClick)]
public void CTRL1_5_OnClick(DocActionEvent e)
{
// Write your code here.
thisXDocument.UI.Alert("Hello!");
}
<InfoPathEventHandler(MatchPath:="CTRL1_5", EventType:=InfoPathEventType.OnClick)> _
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
' Write your code here.
thisXDocument.UI.Alert("Hello!")
End Sub
Informationen zum Erstellen eines Ereignishandlers finden Sie unter Hinzufügen eines Ereignishandlers mithilfe des InfoPath 2003-Objektmodells.
_ShutDown (Methode)
Die _Shutdown
-Methode ist die letzte Methode, die aufgerufen wird, wenn ein Formular geschlossen wird. In dieser Methode können Sie beliebigen Code schreiben, der zum Bereinigen oder Fertigstellen von im Formular verwendeten Komponenten benötigt wird.
public void _Shutdown()
{
}
Public Sub _Shutdown()
End Sub
Beispiel für Initialisierungs- und Bereinigungscode
Das folgende Beispiel zeigt, wie Sie eine Verbindung mit einer Microsoft SQL Server-Datenbank in der _Startup
-Methode initialisieren und die Verbindung in der _Shutdown
-Methode schließen. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie zunächst einen Verweis auf die System.Data-Assembly des .NET Framework festlegen, indem Sie im Menü Projekt auf Verweis hinzufügen klicken und dann auf der Registerkarte .NET die komponente System.Data.dll auswählen. Beachten Sie außerdem, dass die using System.Data.SqlClient
-Direktive (oderImports System.Data.SqlClient)
) am Anfang der Formularcodedatei hinzugefügt wurde, um Tastaturanschläge zu reduzieren.
Hinweis
Benutzer eines InfoPath-Formulars mit Formularcode, der eine Verbindung mit einer SQL Server-Datenbank herstellt, benötigen möglicherweise Sicherheitsberechtigungen, abhängig von der Art der Bereitstellung des Formulars und der Definition der Sicherheitsrichtlinien. Weitere Informationen zur Sicherheit finden Sie unter Informationen zum Sicherheitsmodell für Formularvorlagen mit Code und Konfigurieren von Sicherheitseinstellungen für Formularvorlagen mit Code.
using System;
using System.Data.SqlClient;
using Microsoft.Office.Interop.InfoPath.SemiTrust;
// Office integration attribute. Identifies the startup class for the form. Do not
// modify.
[assembly: System.ComponentModel.DescriptionAttribute(
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")]
namespace Template1
{
// The namespace prefixes defined in this attribute must remain synchronized with
// those in the form definition file (.xsf).
[InfoPathNamespace(
"xmlns:my='http://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-05T20-56-13'")]
public partial class Template1
{
private XDocument thisXDocument;
private Application thisApplication;
private SqlConnection sqlConnect;
public void _Startup(Application app, XDocument doc)
{
thisXDocument = doc;
thisApplication = app;
// Initialize variable for SQL Server connection.
sqlConnect= new SqlConnection("server=localhost;Trusted_Connection=yes;database=Northwind");
}
public void _Shutdown()
{
// Close SQL Server connection at shut down.
sqlConnect.Close();
}
}
}
Imports System
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop.InfoPath.SemiTrust
Imports Microsoft.VisualBasic
' Office integration attribute. Identifies the startup class for the form. Do not
' modify.
<Assembly: System.ComponentModel.DescriptionAttribute( _
"InfoPathStartupClass, Version=1.0, Class=Template1.FormCode")>
Namespace Template1
' The namespace prefixes defined in this attribute must remain synchronized with
' those in the form definition file (.xsf).
<InfoPathNamespace( _
"xmlns:my='http://schemas.microsoft.com/office/infopath/2003/myXSD/2004-03-08T18-47-33'")> _
Public Class Template1
Private thisXDocument As XDocument
Private thisApplication As Application
Private sqlConnect As SqlConnection
Public Sub _Startup(app As Application, doc As XDocument)
thisXDocument = doc
thisApplication = app
' Initialize variable for SQL Server connection.
sqlConnect = New SqlConnection _("server=localhost;Trusted_Connection=yes;database=Northwind")
End Sub
Public Sub _Shutdown()
' Close SQL Server connection.
sqlConnect.Close()
End Sub
End Class
End Namespace
Siehe auch
Hinzufügen eines Ereignishandlers mithilfe des InfoPath 2003-Objektmodells