2009-04-10 44 views
0

我正在使用由以前的,現在無法訪問的,發佈者設計的WinForm應用程序。在這個應用程序中,農場通過一些自定義代碼嵌入在TabControls中。我的問題是,任何人都可以幫助嘗試解釋爲什麼在每個窗體中都有一個自定義的_Paint()函數,該窗體通過該窗體的Load事件調用。Paint()方法與Win Form中的_Paint()事件的目的是什麼?

這個Paint()方法實際上並沒有綁定到前面提到的雛菊鏈之外的窗體。這有什麼用途?在下面的代碼中,您會注意到我創建了Paint()事件並移動了代碼的一部分,所有東西仍然看起來像「Peachy」。

任何人都可以幫助我理解這一點嗎?這是否僅僅是因爲定製公開聲明?

 private void frmWWCModuleHost_Load(object sender, EventArgs e) 
    { 
     FormPaint(); 
    } 

    public void FormPaint() 
    { 
     WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, new FrmCaseNotes()); 
     WinFormCustomHandling.ShowFormInContainerControl(tpgMCP, _frmWWCMCPHost); 
     WinFormCustomHandling.ShowFormInContainerControl(tpgMember, _frmWWCMemberHost); 
     WinFormCustomHandling.ShowFormInContainerControl(tpgEnrollment, _frmWWCEnrollmentHost); 
     WinFormCustomHandling.ShowFormInContainerControl(tpgWWCSearch,_frmWWCSearch); 
     WinFormCustomHandling.ShowFormInContainerControl(tpgAudit, FrmAudit); 

     // Call each top-Level (visible) tabpage's form FormPaint() 
     _frmWWCMCPHost.FormPaint(); 
    } 

    private void FrmModuleHost_Paint(object sender, PaintEventArgs e) 
    { 
     new psTabRenderer(tclWWCModuleHost, Color.LightSteelBlue, Color.Tomato, Color.Black, Color.Black); 
    } 

回答

1

該代碼看起來很奇怪,當然,但我認爲你正在閱讀更多的「FormPaint」方法的名稱比你應該。對我而言,它似乎只是一個「初始化」例程,基本上與Paint事件(除了名稱)無關。

此外,似乎FormPaint中的任何代碼被稱爲每個窗體一次,而Paint事件處理程序內的任何代碼被調用......很多。

+0

所以我想要做的事情,我應該離開自定義畫圖()是你在說什麼......謝謝! – 2009-04-10 18:19:29

1

我不確定你是否發佈了足夠的代碼以便理解。但總的來說,如果您覺得代碼不自然,請繼續並重構它......這一步。

+0

感謝您的評論。我想重構代碼,但我擔心我錯過了一些東西,所以爲什麼我發佈了;獲得「專家」的指導。 – 2009-04-10 18:17:43

相關問題