zoukankan      html  css  js  c++  java
  • a simple navigation framework

      如果不想使用.net的webparts里的向导控件,可以自己设计一个简单的。我设计一个简单的向导框架,思路是这样的:

    1. 首先会有一个向导类,我把它叫Navigation, 向导类有一个容器,里面包括本次向导中所有窗体。向导提供了向导框架中所有核心功能,比如:start, next step,previous step, finish。

    2. 设计一个窗体基类,暂且叫BaseForm.所有向导窗体都继承这个基类,基类必须预留一些钩子(在C#语言中可以设计为virtual或者abstract,c++可为virtual),让各个派生的子类窗体去执行具体的窗体逻辑。比如:需要更新窗体title,处理业务逻辑等操作,另外,该窗口包含了一些向导控件(Next ,Previou,Finish,Cancel)。最后,必须把Navigation与窗体基类做关联。

    3. 把所有向导窗体继续自BaseForm,并实现基类的钩子方法。

    下面是用C#写的主要框架代码:

    public class Navigation
    {
        public List<BaseForm> container;
        public int currentIndex;
    
        public void Start() {currentIndex = 0; container[currentIndex].Show();}
        public void Finish() {currentIndex = container.Count-1;}
        public void Next();
        public void Previous();
    
         public Navigation()
         {
                currentIndex = 0;
                container  = new List<BaseForm>();
          }
    
         public void InitNavContainer()
         { 
                // TODO: Add your wizard forms step by step
                container.Add(.....)
         }
    
        public int IsHeadForm()
        {
              return (currentIndex == 0);
        }
         
        public int IsTailForm()
        {
              return (currentIndex == container.Count - 1);
        }
    }

    下面是窗体基类:

       1:  public class BaseForm : Form
       2:  {
       3:        public abstract void DoSomething();
       4:        public Button btnNext;
       5:        public Button btnPrevious;
       6:        public Button btnFinish;
       7:        public Button btnCancel;
       8:   
       9:        public Navigation navigation;
      10:   
      11:       public BaseForm(Navigation _navigation)
      12:      {
      13:            navigation = _navigation;
      14:       }
      15:   
      16:      public void OnNext()
      17:     {
      18:            navigation.Next();
      19:     }
      20:   
      21:     ........
      22:  }

      

    子窗体代码很简单,所以代码都是直接写的,没有经过编译器compile过。 c# sucks.

    Author:repository
    From:  http://repository.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    软工实践寒假作业(2/2)
    Java 内存溢出分析
    个人作业——软件工程实践总结&个人技术博客
    个人作业——软件测评
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次作业-疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    软工实践寒假作业(1/2)
    个人作业——软件工程实践总结&个人技术博客
    配合springboot的快速运维脚本
  • 原文地址:https://www.cnblogs.com/repository/p/2263913.html
Copyright © 2011-2022 走看看