欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#之如何實現(xiàn)多個子窗體切換效果

 更新時間:2023年07月12日 14:22:19   作者:灰小猿  
這篇文章主要介紹了C#之如何實現(xiàn)多個子窗體切換的效果,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

C#實現(xiàn)多個子窗體切換效果

C#的在主窗體中實現(xiàn)多個子窗體相互切換的效果主要依托于panel容器和Controls函數(shù)。

和大家分享一下在C#的winform開發(fā)中如何實現(xiàn)借助一個主窗體來實現(xiàn)內部多個子窗體的切換效果。

先來看一下主窗體中多個小窗體切換的效果

多窗體切換的原理

多窗體切換的原理其實是借助一個panel容器,在該容器中顯示相同大小的窗口

建立多窗口切換的步驟

1.新建一個主窗體并在其中放置適當?shù)目丶?/h3>

包括進行切換的按鈕和顯示窗體的panel容器,在這里要注意:將要顯示的子窗體就是在該panel容器中顯示的,

效果如下:

2.新建用于在主窗體中顯示的子窗體

子窗體的新建其實是一個用戶控件(Windows窗體),在這里我們可以在狀態(tài)欄中右擊選擇—>添加—>用戶控件(Windows窗體)

3.設置子窗體的尺寸和panel容器的尺寸相等

目的是為了在panel容器中顯示時不會溢出。

在這里我們?yōu)榱吮阌趨^(qū)分三個不同的子窗體,設置窗體的不同顏色,并在窗體中進行提示。

4.以同樣的方式建立子窗體二和子窗體三

窗體三

5.在主窗體的代碼中定義相應的三個窗口變量

        public UserControl1 f1; //創(chuàng)建用戶控件一變量
        public UserControl2 f2; //創(chuàng)建用戶控件二變量
        public UserControl3 f3; //創(chuàng)建用戶控件三變量

6.在Form1_Load函數(shù)中對三個變量進行賦值

也就是對三個對象進行實例化

        private void Form1_Load(object sender, EventArgs e)
        {
            f1 = new UserControl1();    //實例化f1
            f2 = new UserControl2();    //實例化f2
            f3 = new UserControl3();    //實例化f3
        }

7.由于我們的窗體切換是點擊相應的按鈕觸發(fā)的

所以我們要為相應的按鈕控件設置觸發(fā)事件。

雙擊主窗體中的按鈕進入相應的觸發(fā)函數(shù),在這里我們要使用如下的代碼對相應的子窗體進行顯示:

        //顯示窗體一
        private void button1_Click(object sender, EventArgs e)
        {
            f1.Show();   //將窗體一進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f1);    //將窗體一加入容器panel2
        }
        //顯示窗體二
        private void button2_Click(object sender, EventArgs e)
        {
            f2.Show();   //將窗體二進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f2);    //將窗體二加入容器panel2
        }
        //顯示窗體三
        private void button3_Click(object sender, EventArgs e)
        {
            f3.Show();   //將窗體三進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f3);    //將窗體三加入容器panel2
        }

8.完成之后運行窗口

點擊相應的按鈕,在panel2容器中就可以呈現(xiàn)出相應的界面。

最后附上完整源碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace window_cut
{
    public partial class Form1 : Form
    {
        public UserControl1 f1; //創(chuàng)建用戶控件一變量
        public UserControl2 f2; //創(chuàng)建用戶控件二變量
        public UserControl3 f3; //創(chuàng)建用戶控件三變量
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            f1 = new UserControl1();    //實例化f1
            f2 = new UserControl2();    //實例化f2
            f3 = new UserControl3();    //實例化f3
        }
        //顯示窗體一
        private void button1_Click(object sender, EventArgs e)
        {
            f1.Show();   //將窗體一進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f1);    //將窗體一加入容器panel2
        }
        //顯示窗體二
        private void button2_Click(object sender, EventArgs e)
        {
            f2.Show();   //將窗體二進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f2);    //將窗體二加入容器panel2
        }
        //顯示窗體三
        private void button3_Click(object sender, EventArgs e)
        {
            f3.Show();   //將窗體三進行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f3);    //將窗體三加入容器panel2
        }
    }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Unity實現(xiàn)批量Build打包詳解

    Unity實現(xiàn)批量Build打包詳解

    一般來講如果項目是PC或Android、IOS端不會有批量Build打包這樣的需求,但如果項目是WebGL端可能會遇到這樣的需求。本文主要為大家介紹Unity中如何實現(xiàn)Build批量打包的,需要的朋友可以參考一下
    2021-12-12
  • C#/VB.NET創(chuàng)建PDF文檔的示例代碼

    C#/VB.NET創(chuàng)建PDF文檔的示例代碼

    通過代碼創(chuàng)建 PDF 文檔有許多好處,所以本文將為大家詳細介紹一下如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中從頭開始創(chuàng)建 PDF 文檔,需要的可以參考下
    2023-12-12
  • C#線程池ThreadPool用法簡介

    C#線程池ThreadPool用法簡介

    這篇文章介紹了C#線程池ThreadPool的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#使用二分查找法判斷指定字符的方法

    C#使用二分查找法判斷指定字符的方法

    這篇文章主要介紹了C#使用二分查找法判斷指定字符的方法,結合實例形式分析了C#二分查找法進行字符串查找的定義與使用技巧,需要的朋友可以參考下
    2016-06-06
  • C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件)

    C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件)

    這篇文章主要介紹了C#刪除只讀文件或文件夾(解決File.Delete無法刪除文件),需要的朋友可以參考下
    2015-09-09
  • C#游戲開發(fā)之實現(xiàn)俄羅斯方塊游戲

    C#游戲開發(fā)之實現(xiàn)俄羅斯方塊游戲

    這篇文章主要為大家詳細介紹了C#如何實現(xiàn)經典俄羅斯方塊游戲,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • c#二叉樹存儲介紹

    c#二叉樹存儲介紹

    大家好,本篇文章主要講的是c#二叉樹存儲介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C#中串口讀取問題及解決方案

    C#中串口讀取問題及解決方案

    在現(xiàn)代計算機系統(tǒng)中,串口通信仍然是許多設備和應用程序之間進行數(shù)據(jù)交換的重要方式,無論是在工業(yè)自動化、嵌入式系統(tǒng),還是在日常的硬件調試中,串口都扮演著不可或缺的角色,本文旨在深入探討C#中串口讀取問題的常見原因,并提供一系列有效的解決方案,需要的朋友可以參考下
    2024-12-12
  • mvc C# JavaScript LigerUI oracle實現(xiàn)用戶的注冊、登陸驗證、登陸

    mvc C# JavaScript LigerUI oracle實現(xiàn)用戶的注冊、登陸驗證、登陸

    這篇文章主要介紹了mvc C# JavaScript LigerUI oracle實現(xiàn)用戶的注冊、登陸驗證、登陸的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#使用DLLImport調用外部DLL的方法

    C#使用DLLImport調用外部DLL的方法

    這篇文章介紹了C#使用DLLImport調用外部DLL的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04

最新評論