最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

多窗體切換的原理

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

建立多窗口切換的步驟

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

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

效果如下:

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

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

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

目的是為了在panel容器中顯示時(shí)不會(huì)溢出。

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

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

窗體三

5.在主窗體的代碼中定義相應(yīng)的三個(gè)窗口變量

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

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

也就是對三個(gè)對象進(jìn)行實(shí)例化

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

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

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

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

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

8.完成之后運(yùn)行窗口

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

最后附上完整源碼

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();    //實(shí)例化f1
            f2 = new UserControl2();    //實(shí)例化f2
            f3 = new UserControl3();    //實(shí)例化f3
        }
        //顯示窗體一
        private void button1_Click(object sender, EventArgs e)
        {
            f1.Show();   //將窗體一進(jìn)行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f1);    //將窗體一加入容器panel2
        }
        //顯示窗體二
        private void button2_Click(object sender, EventArgs e)
        {
            f2.Show();   //將窗體二進(jìn)行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f2);    //將窗體二加入容器panel2
        }
        //顯示窗體三
        private void button3_Click(object sender, EventArgs e)
        {
            f3.Show();   //將窗體三進(jìn)行顯示
            panel2.Controls.Clear();    //清空原容器上的控件
            panel2.Controls.Add(f3);    //將窗體三加入容器panel2
        }
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#泛型集合Dictionary<K,V>的使用方法

    C#泛型集合Dictionary<K,V>的使用方法

    這篇文章主要介紹了C#泛型集合Dictionary<K,V>的使用方法,本文講解了Dictionary的多種操作方法,需要的朋友可以參考下
    2014-10-10
  • C#調(diào)用Rar文件及獲取Rar返回值的方法

    C#調(diào)用Rar文件及獲取Rar返回值的方法

    這篇文章主要介紹了C#調(diào)用Rar文件及獲取Rar返回值的方法,實(shí)例分析了C#調(diào)用rar文件實(shí)現(xiàn)文件的壓縮與解壓相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#中如何使用redis

    C#中如何使用redis

    這篇文章主要介紹了C#中如何使用redis,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#泛型類創(chuàng)建與使用的方法

    C#泛型類創(chuàng)建與使用的方法

    這篇文章主要為大家詳細(xì)介紹了C#泛型類創(chuàng)建與使用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#正則表達(dá)式大全

    C#正則表達(dá)式大全

    本文詳細(xì)講解了C#正則表達(dá)式的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 一文帶你了解C#中的協(xié)變與逆變

    一文帶你了解C#中的協(xié)變與逆變

    這篇文章介紹了C#中協(xié)變和逆變的相關(guān)知識,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Unity?UGUI的GraphicRaycaster射線投射組件介紹使用

    Unity?UGUI的GraphicRaycaster射線投射組件介紹使用

    這篇文章主要為大家介紹了Unity?UGUI的GraphicRaycaster射線投射組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 在C#中調(diào)用Python代碼的兩種實(shí)現(xiàn)方式

    在C#中調(diào)用Python代碼的兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了在C#中調(diào)用Python代碼的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 最新評論

    金乡县| 禄丰县| 克拉玛依市| 琼海市| 常宁市| 贡山| 西青区| 无极县| 姜堰市| 微山县| 句容市| 屏东市| 当雄县| 富平县| 云安县| 德州市| 杭州市| 灵武市| 扶风县| 凤凰县| 商丘市| 黄山市| 朝阳区| 云阳县| 安丘市| 迁西县| 邹城市| 布尔津县| 丽江市| 五莲县| 安宁市| 乐安县| 鄂尔多斯市| 化州市| 堆龙德庆县| 丹巴县| 哈尔滨市| 菏泽市| 亚东县| 桦川县| 汕头市|