程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 在TabControl基礎上實現的一個翻頁機制

在TabControl基礎上實現的一個翻頁機制

編輯:.NET實例教程
在一個form中,如果輸入項太多,那麼最好不要都堆放在一個界面中,比較好的辦法是讓用戶分步填寫(比如很多招聘網站讓用戶填寫信息的方式都是這樣的)。在TabControl(.Net2.0)的基礎上,我把每一個tabPage作為一頁,通過實現一些特定的事件處理函數,達到了一個簡單翻頁效果。實現很簡單,不對的地方還請大家多指教。
    界面如下:


代碼實現如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
...{
    public partial class Form1 : Form
    ...{
        private delegate void ChangePageHandler();  // 翻頁函數代理

        private int currentIndex = 0;   // 記錄當前選項卡索引
        private bool changeLock = true; // 頁面切換鎖,如果為true,那麼禁止切換tabpage

        public Form1()
        ...{
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        ...{
            this.currentIndex = tabControl1.SelectedIndex;
        }

        /**//// <summary>
        /// 選擇進入下一個選項卡
        /// </summary>
        private void SelectNextTabPage()
        ...{
            int count = tabControl1.TabPages.Count;
            currentIndex = this.tabControl1.SelectedIndex + 1;
            if (currentIndex > count - 1)
            ...{
                currentIndex = count - 1;
            }
            this.tabControl1.SelectTab(currentIndex);
        }
        /**//// <summary>
        /// 選擇退回到上一個選項卡
        /// </summary>
        private void SelectPreviousTabPage()
        ...{
            currentIndex = this.tabControl1.SelectedIndex - 1;
            if (currentIndex < 0)
            ...{
                currentIndex = 0;
            }
            this.tabControl1.SelectTab(currentIndex);
        }

        /**//// <summary>
        /// 阻止用戶通過點擊選項卡來切換tabpage
        /// </summary>
 &nbs   /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
        ...{
            e.Cancel = changeLock;
        }

        /**//// <summary>
        /// 代理翻頁
        /// </summary>
        /// <param name="handler">具體的翻頁函數</param>
        private void ChangePage(ChangePageHandler handler)
        ...{
            this.changeLock = false;
            handler();
            this.changeLock = true;
        }


        /**//// <summary>
        /// 上一步
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonPreviousStep1_Click(object sender, EventArgs e)
        ...{
            this.ChangePage(this.SelectPreviousTabPage);
        }

        /**//// <summary>
        /// 下一步
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonNextStep1_Click(object sender, EventArgs e)
        ...{
            this.ChangePage(this.SelectNextTabPage);
        }

  }
}<!--[if !vml]--><!--[endif]-->
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved