Поделиться через


Событие 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

Исключения

Тип исключения Условие

InvalidOperationException

Попытка разработчика привязать событие в другом местоположении, чем метод InternalStartup.

Заметки

ЗаметкаВнимание!

Создание разработчиком экземпляра события Loading в коде формы не предполагается. Пользователь должен только добавить обработчики событий для событий уровня формы из пользовательского интерфейса в режиме конструктора Microsoft Office InfoPath 2007. При добавлении обработчика события к шаблону формы из пользовательского интерфейса в режиме конструктора InfoPath генерирует код в методе InternalStartup файла кода формы с помощью класса EventManager и члена класса FormEvents для привязки события к его обработчику. Сведения о порядке добавления обработчиков событий в режиме конструктора InfoPath см. в разделе Практическое руководство. Добавление обработчика событий.

Событие Loading привязано с помощью делегата LoadingEventHandler.

Событие Loading создается до загрузки формы и отображения представления.

Если шаблон формы развернут и открыт из приложения Microsoft Office Forms Server 2007 или из соответственно сконфигурированной библиотеки документов в приложении Office SharePoint Server 2007, работающем под управлением Служба InfoPath Forms Services, событие Loading создается только одно на сеанс.

Событие Loading можно отменить с помощью свойства CancelableArgs класса SaveEventArgs, установив для свойства Cancel значение true.

ЗаметкаЗаметка

При создании события Loading представление не инициализировано, и вместо незагруженного представления используется преобразование XSL (XSLT). Объект XmlForm не добавляется к коллекции XmlFormCollection до завершения события Loading. Однако объект XmlForm доступен во время события Loading.

Вызовы следующих методов и свойств невозможно выполнить в обработчике события Loading:

Quit

DisableAutoUpdate

EnableAutoUpdate

ExecuteAction

Export

ForceUpdate

GetContextNodes

GetSelectedNodes

SelectNodes

SelectText

SwitchView

Close

MergeForm

New

Save

SaveAs

Submit

Print

NewFromFormTemplate

Close

TaskPanes

Вызовы членов классов AdoSubmitConnection, EmailSubmitConnection или FileSubmitConnection невозможно выполнить в обработчике события Loading.

Доступ к этому типу или члену имеется из программы, работающей в формах, открытых в Microsoft Office InfoPath 2007 или в веб-обозревателе.

Пример

В следующем примере обработчик события для события 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

См. также

Ссылка

Класс FormEvents
Члены FormEvents
Пространство имен Microsoft.Office.InfoPath