在Winform应用程序中操作UserControl事件/属性/方法/枚举等

时间:2012-11-17 09:01:40

标签: c# windows winforms visual-studio

我在form1.cs(Winforms应用程序)上有200多个UserControl,并且在form1.cs编码页面中的每个UserControl的事件/方法/属性和枚举之间混淆不正确。

我可以像设置//之类的评论一样手动订购,也可以手动提供身份。

我想知道有没有不同的方法通过特定方法或任何其他方式处理它们?

例如:

namespace FinApps
{
public partial class Form1 : Form
{
    private FinAppsUserControl.ExportReports er;
    private FinAppsUserControl.BankMaster bankmaster;
    private FinAppsUserControl.CompanyMaster companymaster;

    public Form1()
    {
        er = new FinAppsUserControl.ExportReports();
        bankmaster = new FinAppsUserControl.BankMaster();
        companymaster = new FinAppsUserControl.CompanyMaster();

        InitializeComponent();

        this.panel2.Controls.Add(er);
        this.panel2.Controls.Add(bankmaster);
        this.panel2.Controls.Add(companymaster);

      bankmaster.BankMasterExitEvent += new FinAppsUserControl.BankMaster.bankmasterexitevent(bankmaster_BankMasterExitEvent);
        er.ExportReportsKeyDownEvent += new FinAppsUserControl.ExportReports.exportreportskeydownevent(er_ExportReportsKeyDownEvent);
        companymaster.CloseEvent += new FinAppsUserControl.CompanyMaster.closeevent(companymaster_CloseEvent);
     }


//below is mix event/properties/method not sorted by specific UserControl Order..

    private void er_ExportReportsKeyDownEvent(ref Message msg, Keys keydata)
    {
        if (keydata == Keys.Escape) 
        {
        // specific tasks          
        }
    }
 private void bankmaster_BankMasterExitEvent()
 {
      //specific tasks
 }

 private void companymaster_CloseEvent()
 {
        //specific tasks
 }

但是我想对特定用户控制视频的事件/方法/属性进行排序,如下面我手动调整的特定Usercontrol vise。

    //ExportReportUserControl
    private void er_ExportReportsKeyDownEvent(ref Message msg, Keys keydata)
    {
        if (keydata == Keys.Escape) 
        {
        // specific tasks          
        }
    }

   //BankMasterUserControl
 private void bankmaster_BankMasterExitEvent()
 {
      //specific tasks
 }

  //CompanyMasterUserControl

 private void companymaster_CloseEvent()
 {
        //specific tasks
 }

以上示例仅与三个UserControl相关,并且可能有大约200个UserControl,并且每个UserControl可能在Form1.cs编码页面上包含更多事件/方法/属性和枚举。我只想通过特定的UserControl Idenetity对它们进行排序,我已通过评论//手动声明了它。

所以我的想法是在 form1.cs 中声明一个特定的方法,它与特定的UserControls有关,它们分别包含它们的事件/方法/属性/枚举,因此我们可以很容易地解决上述混乱。

有可能吗?还是其他更好的方式?。

1 个答案:

答案 0 :(得分:1)

您可以使用#region - #endregion标签,例如:

#region MyUserControl1 things

//Put your MyUserControl1 methods, event handlers etc. here

#endregion

#region MyUserContro2 things

//Put your MyUserContro2 methods, event handlers etc. here

#endregion