我有一個自定義Winform Infopath UserControl,它從SharePoint庫中加載表單。我有一系列的函數調用,打開窗體後,從窗體中拉出一些數據,甚至是一個截圖函數。但是表單加載需要很多時間,其他函數在表單加載之前完成得太快,這給我錯誤的結果。等待Winform UserControl加載
有沒有什麼方法可以讓我有一個等待功能,對於InfoPath表單完成加載等待被稱爲其它函數之前(在C#)
--update
示例代碼:?
的用戶控件裏面,我有一個表格初始化函數,基本上加載的形式
public void InitializeInfoPathForm(string myurl)
{
if (this.IsInitialized) return;
CreateForm(new Uri(myurl),null);
}
public void CreateForm(
Uri formUrlName,
Stream dataStream)
{
TestInitialization();
try
{
this.formControl.Close();
// Open/create a form
if (dataStream != null)
formControl.Open(
formUrlName.ToString()
);
else
{
formControl.Open(
formUrlName.ToString());
}
RefreshView(UIStatesForm.DocumentReadMode);
}
catch (Exception)
{
RefreshView(UIStatesForm.NoDocumentAvailable);
throw;
}
}
在WinForm看起來是這樣的:
public partial class Form1 : Form
{
public Form1(string sharepoint_url)
{
InitializeComponent();
this.infoPathUserControl1.InitializeInfoPathForm(sharepoint_url);
takescreenshot();
}
}
我試圖把takescreenshot()在Form1_Load的和Form1_Shown事件處理器,但由於FormControl.Open()需要大量的時間還是可能導致比截圖的形式加載要早得多。我可以將截圖功能放在button_click事件中,但我想自動執行此過程。我甚至試圖把它放在button_click過程中,並從Form_Load事件處理程序中調用button.PerformClick。
請教。
你可以發佈一些示例代碼來幫助說明你的問題嗎? – GrandMasterFlush 2011-12-14 15:23:04