FormEvents.Loading 事件
在已經載入表單範本時,但尚未初始化任何檢視之前發生。
**命名空間:**Microsoft.Office.InfoPath
**組件:**Microsoft.Office.InfoPath (於 microsoft.office.infopath.dll 中)
語法
'宣告
Public Event Loading As LoadingEventHandler
'用途
Dim instance As FormEvents
Dim handler As LoadingEventHandler
AddHandler instance.Loading, handler
public abstract event LoadingEventHandler Loading
例外狀況
例外狀況類型 | 條件 |
---|---|
開發人員嘗試在 InternalStartup 方法以外的其他位置中繫結事件。 |
備註
重要
Loading 事件並不是要由開發人員在表單程式碼中產生例項。您只能夠從 Microsoft Office InfoPath 2007 設計模式使用者介面中為表單層級的事件新增事件處理常式。當您從設計模式使用者介面中將事件處理常式新增至您的表單範本時,InfoPath 會使用 EventManager 類別,在表單程式碼檔案的 InternalStartup 方法中產生程式碼,並且使用 FormEvents 類別的成員來將事件繫結至其事件處理常式。如需如何在 InfoPath 設計模式中新增事件處理常式的詳細資訊,請參閱操作方法:新增事件處理常式。
Loading 事件是使用 LoadingEventHandler 委派所繫結。
Loading 事件發生於載入表單之前以及轉譯檢視之前。
如果將表單範本部署至 Microsoft Office Forms Server 2007 並從中開啟表單,或是從執行 InfoPath Forms Services 之 Office SharePoint Server 2007 上適當設定的文件庫開啟時,每個工作階段都只會發生一次 Loading 事件。
您可以使用 SaveEventArgs 類別的 CancelableArgs 屬性,將 Cancel 屬性設定為 true,以便取消 Loading 事件。
注意
當 Loading 事件發生時,尚未初始化檢視,而且尚未載入檢視所使用的 XSL 轉換 (XSLT)。必須等到發生 Loading 事件之後,XmlForm 物件才會新增到 XmlFormCollection 集合。不過,在 XmlForm 事件期間,仍然可以使用 Loading 物件。
無法在 Loading 事件處理常式中呼叫下列方法和屬性:
無法在 Loading 事件處理常式中呼叫 AdoSubmitConnection、EmailSubmitConnection 或 FileSubmitConnection 類別的成員。
此類型或成員可以從 Microsoft Office InfoPath 2007 或 Web 瀏覽器所開啟表單中執行的程式碼存取。
範例
在下列範例中,Loading 事件的事件處理常式用於判斷表單是否已經過數位簽章,如果尚未簽章,則將 Date1 欄位設定成目前的日期。
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
if (this.Signed)
{
e.CancelableArgs.Message =
"This form is digitally signed. Loading is cancelled.";
e.CancelableArgs.Cancel = true;
}
XPathNavigator myDate =
CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
NamespaceManager);
// Check for and delete xsi:nil="true" attribute.
if (myDate.MoveToAttribute("nil",
"http://www.w3.org/2001/XMLSchema-instance"))
{
myDate.DeleteSelf();
}
myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
ByVal e As LoadingEventArgs)
If (Me.Signed)Then
e.CancelableArgs.Message =
"This form is digitally signed. Loading is cancelled."
e.CancelableArgs.Cancel = True
End If
Dim myDate As XPathNavigator =
CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
NamespaceManager)
' Check for and delete xsi:nil="true" attribute.
If (myDate.MoveToAttribute("nil",
"http://www.w3.org/2001/XMLSchema-instance"))
myDate.DeleteSelf();
End If
myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
End Sub