从基本形式继承时导航缓慢



我正在使用上面有菜单的基本表单,因此我不必重新进行整个应用程序的代码。

本质上,此表格称为studentbase.cs

然后,我还有另一种称为StudentProfile的表格,该表格从StudentBase继承

    public partial class StudentProfile : StudentBase
    {
       public string selectedPage;
    }

然后,这继承了StudentBase中的菜单,我不必重新做菜单。

在菜单上,有单个表单的按钮。

所以,假设我按下学生资料我用它来导航:

    private void btnProfile_Click(object sender, EventArgs e)
    {
          //I don't want the page to reload if it is the current page
          if (selectedPage != "Profile") 
          {
             StudentProfile profile = new StudentProfile();
             profile.Show();
             this.Hide();
          }      
    }

这样做会产生非常卑鄙的结果,而且看起来很笨拙

i在儿童表格中覆盖了选定的页面,因此在学生折扣的情况下我使用:

   private void StudentProfile_Load(object sender, EventArgs e)
    {
        selectedPage = "Profile";
    }

我已经在朋友的代码上测试了这一点,他的导航在没有滞后或故障的情况下工作。他没有在表格上掌握

的继承。

继承解决方案的问题是,当您创建一个StudentProfile实例时,还可以创建一个StudentBase表单的实例。您可以显示此新实例并隐藏旧实例。现在,您有两个StudentBase的实例(一个可见,一个隐藏(。当您从菜单中打开更多表格时,您会在内存中获得更多的StudentBase实例。即使隐藏了它们,它们仍然消耗资源。这将解释您看到的结果。

我建议您作为您的朋友做,这是从主菜单中处理典型的儿童表格的方式。

所以,我无法正确弄清楚如何使用USERCORTROL。我把它放在我的待办事项列表中,这样我就可以在项目结束时尝试一下。

,但是,我弄清楚了为什么要花这么长时间从一个导航到另一个导航。

我正在使用

以基本形式选择学生详细信息
Student student = new Student();
Student studentDetailsFound = student.GetStudent(2);

我从未阻止过每次导航到新表单时从数据库中选择的,因此每次都会延迟两秒钟。因此,有两个选择可以解决此问题:静态变量或缓存

我使用了后者,现在它切换到页面很快。

通过在表单上添加 transition ,它使其在眼睛上更加顺畅。

也要注意:如果您获得的数据就像我一样,则应首先等待表单的设计完成。因此,如果:

if (this.Site == null || !this.Site.DesignMode)
{
    studentDetailsFound = GetStudent();
}

相关内容

  • 没有找到相关文章

最新更新