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

基于C#設計一個帶導航菜單的主界面

 更新時間:2024年04月12日 10:28:25   作者:wenchm  
這篇文章主要為大家詳細介紹了如何基于C#設計一個帶導航菜單的主界面,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

  在C#中,可以使用Windows Forms或WPF來設計帶有導航菜單的主界面。

一、關于導航菜單

導航菜單是一種用戶界面元素,用于幫助用戶在應用程序的不同部分之間進行導航。它通常包含一個或多個菜單項,每個菜單項都表示一個特定的功能或操作。當用戶單擊某個菜單項時,應用程序會執(zhí)行相應的操作或顯示與該操作相關的子菜單。

導航菜單可以出現(xiàn)在應用程序的頂部、底部或側邊,具體取決于應用程序的設計和平臺。例如,在Web應用程序中,導航菜單通常出現(xiàn)在頁面的頂部或側邊,而在移動應用程序中,導航菜單可能出現(xiàn)在屏幕的底部或頂部。

導航菜單的主要目的是提供一個直觀且一致的方式來訪問應用程序的主要功能和特性。它可以幫助用戶快速找到他們需要的信息或完成特定的任務,從而提高應用程序的可用性和用戶體驗。

二、設計一個帶導航菜單的主界面

在窗體中添加一個MenuStrip控件,用來設計菜單欄;添加一個SplitContainer控件,用來將窗體分為兩部分;添加一個ListView控件和3個Button控件,并將它們加入SqlitContainer1的左側部分,用來制作窗體左側的導航欄;添加一個ImageList組件,用來為ListView列表項提供圖標。

1.Resources.Designer.cs設計

在圖片資源管理器中設計項目需要的背景圖片和ImageList組件的圖片。

如何加載圖片資源詳見本文作者寫的其他文章:C#手動改變自制窗體的大小

// Resources.Designer.cs
//------------------------------------------------------------------------------
// <auto-generated>
//     此代碼由工具生成。
//     運行時版本:4.0.30319.42000
//
//     對此文件的更改可能會導致不正確的行為,并且如果
//     重新生成代碼,這些更改將會丟失。
// </auto-generated>
//------------------------------------------------------------------------------
 
namespace _176.Properties {
    using System;
    
    
    /// <summary>
    ///   一個強類型的資源類,用于查找本地化的字符串等。
    /// </summary>
    // 此類是由 StronglyTypedResourceBuilder
    // 類通過類似于 ResGen 或 Visual Studio 的工具自動生成的。
    // 若要添加或移除成員,請編輯 .ResX 文件,然后重新運行 ResGen
    // (以 /str 作為命令選項),或重新生成 VS 項目。
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        
        private static global::System.Resources.ResourceManager resourceMan;
        
        private static global::System.Globalization.CultureInfo resourceCulture;
        
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        
        /// <summary>
        ///   返回此類使用的緩存的 ResourceManager 實例。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("_176.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        
        /// <summary>
        ///   重寫當前線程的 CurrentUICulture 屬性,對
        ///   使用此強類型資源類的所有資源查找執(zhí)行重寫。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _1 {
            get {
                object obj = ResourceManager.GetObject("_1", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _2 {
            get {
                object obj = ResourceManager.GetObject("_2", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _3 {
            get {
                object obj = ResourceManager.GetObject("_3", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _4 {
            get {
                object obj = ResourceManager.GetObject("_4", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _5 {
            get {
                object obj = ResourceManager.GetObject("_5", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _6 {
            get {
                object obj = ResourceManager.GetObject("_6", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _7 {
            get {
                object obj = ResourceManager.GetObject("_7", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _8 {
            get {
                object obj = ResourceManager.GetObject("_8", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap _9 {
            get {
                object obj = ResourceManager.GetObject("_9", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        
        /// <summary>
        ///   查找 System.Drawing.Bitmap 類型的本地化資源。
        /// </summary>
        internal static System.Drawing.Bitmap C_編程詞典 {
            get {
                object obj = ResourceManager.GetObject("C_編程詞典", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
 
        internal static Bitmap GetObject(string v)
        {
            return v switch
            {
                "C_編程詞典" => C_編程詞典,
                "_9" => _9,
                "_8" => _8,
                "_7" => _7,
                "_6" => _6,
                "_5" => _5,
                "_4" => _4,
                "_3" => _3,
                "_2" => _2,
                "_1" => _1,
                _ => null
            };
        }
    }
}

2.主要的設計步驟

(1)窗體靜態(tài)設計

設計一個窗體;

在窗體中設計一個menustrip1控件,默認的控件位于Form1的頂部,重要的設置menustrip1控件的Dock屬性設置為Top;最后設計3個MenuItem子控件:設置、打開、編輯;

在窗體剩余空間中添加一個 splitContainer控件,之所以說剩余空間,就是要保證menustrip1控件不被 splitContainer控件包含,這哈斯有menustrip1的Dock屬性保證的;

設計圖片資源管理器,并給右側的splitContainer2添加背景圖片,Stretch布局;

在左側的splitContainer2控件里,添加3個button控件,并命名為:設置、打開、編輯;設置控件的Dock屬性為Top,設置編輯控件的Dock屬性為Top,最后,設置打開按鈕的Dock屬性為Top;結果是,設置按鈕位于splitContainer2控件頂部,編輯按鈕位于splitContainer2控件底部,打開按鈕位于編輯按鈕的頂部;這樣的設置很重要;

在左側的splitContainer2控件里設置按鈕和打開按鈕之間添加 listView1控件,其Dock屬性設置為Fill,這很重要;

添加imageList1控件,并為其添加圖片集;

設置 listView1控件的屬性,右上角的尖角,選擇大圖標、imageList1、imageList1;

創(chuàng)建窗體、按鈕1~3的Click事件;

// Form1.Designer.cs
namespace _176
{
    partial class Form1
    {
        /// <summary>
        ///  Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
 
        /// <summary>
        ///  Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
 
        #region Windows Form Designer generated code
 
        /// <summary>
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            imageList1 = new ImageList(components);
            menuStrip1 = new MenuStrip();
            toolStripMenuItem1 = new ToolStripMenuItem();
            toolStripMenuItem2 = new ToolStripMenuItem();
            toolStripMenuItem3 = new ToolStripMenuItem();
            splitContainer1 = new SplitContainer();
            listView1 = new ListView();
            button3 = new Button();
            button2 = new Button();
            button1 = new Button();
            menuStrip1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
            splitContainer1.Panel1.SuspendLayout();
            splitContainer1.SuspendLayout();
            SuspendLayout();
            // 
            // imageList1
            // 
            imageList1.ColorDepth = ColorDepth.Depth32Bit;
            imageList1.ImageStream = (ImageListStreamer)resources.GetObject("imageList1.ImageStream");
            imageList1.TransparentColor = Color.Transparent;
            imageList1.Images.SetKeyName(0, "1.png");
            imageList1.Images.SetKeyName(1, "2.jpg");
            imageList1.Images.SetKeyName(2, "3.png");
            imageList1.Images.SetKeyName(3, "4.png");
            imageList1.Images.SetKeyName(4, "5.png");
            imageList1.Images.SetKeyName(5, "6.png");
            imageList1.Images.SetKeyName(6, "7.png");
            imageList1.Images.SetKeyName(7, "8.png");
            imageList1.Images.SetKeyName(8, "9.png");
            // 
            // menuStrip1
            // 
            menuStrip1.Items.AddRange(new ToolStripItem[] { toolStripMenuItem1, toolStripMenuItem2, toolStripMenuItem3 });
            menuStrip1.Location = new Point(0, 0);
            menuStrip1.Name = "menuStrip1";
            menuStrip1.Size = new Size(434, 25);
            menuStrip1.TabIndex = 0;
            menuStrip1.Text = "menuStrip1";
            // 
            // toolStripMenuItem1
            // 
            toolStripMenuItem1.Name = "toolStripMenuItem1";
            toolStripMenuItem1.Size = new Size(44, 21);
            toolStripMenuItem1.Text = "設置";
            // 
            // toolStripMenuItem2
            // 
            toolStripMenuItem2.Name = "toolStripMenuItem2";
            toolStripMenuItem2.Size = new Size(44, 21);
            toolStripMenuItem2.Text = "打開";
            // 
            // toolStripMenuItem3
            // 
            toolStripMenuItem3.Name = "toolStripMenuItem3";
            toolStripMenuItem3.Size = new Size(44, 21);
            toolStripMenuItem3.Text = "編輯";
            // 
            // splitContainer1
            // 
            splitContainer1.Dock = DockStyle.Fill;
            splitContainer1.Location = new Point(0, 25);
            splitContainer1.Name = "splitContainer1";
            // 
            // splitContainer1.Panel1
            // 
            splitContainer1.Panel1.Controls.Add(listView1);
            splitContainer1.Panel1.Controls.Add(button3);
            splitContainer1.Panel1.Controls.Add(button2);
            splitContainer1.Panel1.Controls.Add(button1);
            // 
            // splitContainer1.Panel2
            // 
            splitContainer1.Panel2.BackgroundImage = Properties.Resources.C_編程詞典;
            splitContainer1.Panel2.BackgroundImageLayout = ImageLayout.Stretch;
            splitContainer1.Size = new Size(434, 276);
            splitContainer1.SplitterDistance = 144;
            splitContainer1.TabIndex = 1;
            // 
            // listView1
            // 
            listView1.Dock = DockStyle.Fill;
            listView1.LargeImageList = imageList1;
            listView1.Location = new Point(0, 23);
            listView1.Name = "listView1";
            listView1.Size = new Size(144, 207);
            listView1.SmallImageList = imageList1;
            listView1.TabIndex = 3;
            listView1.UseCompatibleStateImageBehavior = false;
            // 
            // button3
            // 
            button3.Dock = DockStyle.Bottom;
            button3.Location = new Point(0, 230);
            button3.Name = "button3";
            button3.Size = new Size(144, 23);
            button3.TabIndex = 2;
            button3.Text = "編輯";
            button3.UseVisualStyleBackColor = true;
            button3.Click += Button3_Click;
            // 
            // button2
            // 
            button2.Dock = DockStyle.Bottom;
            button2.Location = new Point(0, 253);
            button2.Name = "button2";
            button2.Size = new Size(144, 23);
            button2.TabIndex = 1;
            button2.Text = "打開";
            button2.UseVisualStyleBackColor = true;
            button2.Click += Button2_Click;
            // 
            // button1
            // 
            button1.Dock = DockStyle.Top;
            button1.Location = new Point(0, 0);
            button1.Name = "button1";
            button1.Size = new Size(144, 23);
            button1.TabIndex = 0;
            button1.Text = "設置";
            button1.UseVisualStyleBackColor = true;
            button1.Click += Button1_Click;
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(434, 301);
            Controls.Add(splitContainer1);
            Controls.Add(menuStrip1);
            MainMenuStrip = menuStrip1;
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "帶導航菜單的窗體";
            Load += Form1_Load;
            menuStrip1.ResumeLayout(false);
            menuStrip1.PerformLayout();
            splitContainer1.Panel1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit();
            splitContainer1.ResumeLayout(false);
            ResumeLayout(false);
            PerformLayout();
        }
 
        #endregion
 
        private ImageList imageList1;
        private MenuStrip menuStrip1;
        private ToolStripMenuItem toolStripMenuItem1;
        private ToolStripMenuItem toolStripMenuItem2;
        private ToolStripMenuItem toolStripMenuItem3;
        private SplitContainer splitContainer1;
        private ListView listView1;
        private Button button3;
        private Button button2;
        private Button button1;
    }
}

(2)事件的動作設計

// Form1.cs
namespace _176
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// 默認設置
        /// </summary>
        private void Form1_Load(object sender, EventArgs e)
        {
            listView1.Clear();
            listView1.LargeImageList = imageList1;                                      //設置當前項以大圖標的形式顯示時用到的圖像
            listView1.Items.Add("設置上下班時間", "設置上下班時間", 0);    //向listView1中添加項“設置上下班時間”
            listView1.Items.Add("是否啟用短信提醒", "是否啟用短信提醒", 1);//向listView1中添加項“是否啟用短信提醒”
            listView1.Items.Add("設置密碼", "設置密碼", 2);               //向listView1中添加項“設置密碼”
        }
 
        /// <summary>
        /// 設置
        /// </summary>
        private void Button1_Click(object sender, EventArgs e)
        {
            listView1.Dock = DockStyle.None;    //設置listView1的綁定屬性為未綁定
            button1.Dock = DockStyle.Top;       //設置button1的綁定屬性為上端綁定
            button2.Dock = DockStyle.Bottom;    //設置button2的綁定屬性為底端綁定
            button3.SendToBack();               //將button3發(fā)送到Z順序的后面
            button3.Dock = DockStyle.Bottom;    //設置button3的綁定屬性為底端綁定
            listView1.BringToFront();           //將listView1帶到Z順序的前面
            listView1.Dock = DockStyle.Bottom;  //設置listView1的綁定屬性為底端綁定
            listView1.Clear();
            listView1.Items.Add("設置上下班時間", "設置上下班時間", 0);
            listView1.Items.Add("是否啟用短信提醒", "是否啟用短信提醒", 1);
            listView1.Items.Add("設置密碼", "設置密碼", 2);
        }
 
        /// <summary>
        /// 打開
        /// </summary>
        private void Button2_Click(object sender, EventArgs e)
        {
            listView1.Dock = DockStyle.None;  //設置listView1的綁定屬性為未綁定
            button2.Dock = DockStyle.Top;     //設置button2的綁定屬性為上端綁定
            button1.SendToBack();             //將控件button1發(fā)送到Z順序的后面
            button1.Dock = DockStyle.Top;     //設置button1的綁定屬性為上端綁定
            button3.Dock = DockStyle.Bottom;  //設置button3的綁定屬性為底端綁定
            listView1.Dock = DockStyle.Bottom;//設置listView1的綁定屬性為底端綁定
            listView1.Clear();
            listView1.Items.Add("近期工作記錄", "近期工作記錄", 3);
            listView1.Items.Add("近期工作計劃", "近期工作計劃", 4); 
        }
 
        /// <summary>
        /// 編輯
        /// </summary>
        private void Button3_Click(object sender, EventArgs e)
        {
            listView1.Dock = DockStyle.None;    //設置listView1的綁定屬性為未綁定
            button3.SendToBack();               //將button3發(fā)送到Z順序的后面
            button3.Dock = DockStyle.Top;       //設置button3的綁定屬性為上端綁定
            button2.SendToBack();               //將button2發(fā)送到Z順序的后面
            button2.Dock = DockStyle.Top;       //設置button2的綁定屬性為上端綁定
            button1.SendToBack();               //將button1發(fā)送到Z順序的后面
            button1.Dock = DockStyle.Top;       //設置button1的綁定屬性為上端綁定
            listView1.Dock = DockStyle.Bottom;  //設置listView1的綁定屬性為底端綁定
            listView1.Clear();
            listView1.Items.Add("編輯工作進度報告", "編輯工作進度報告", 5);
            listView1.Items.Add("編輯項目設計圖", "編輯項目設計圖", 6);
        }
    }
}

3.涉及到的主要知識點

(1)Control.SendToBack 方法

將控件發(fā)送到 Z 順序的后面。

public void SendToBack ();

控件移動到 z 順序的后面。 如果控件是另一個控件的子控件,則子控件將移動到 z 順序的后面。 如果控件是頂級控件,則除非控件處于活動狀態(tài),否則此方法將無法正常工作。 頂級控件是一個控件,如 Form,它不是另一個控件的子控件。 活動控件是具有輸入焦點的可見控件。 若要將 SendToBack 方法與非活動頂級控件一起使用,請先對 控件調用 BringToFront 方法。

(2)Control.BringToFront 方法

將控件帶到 Z 順序的前面。

public void BringToFront ();

控件將移動到 z 順序的前面。 如果控件是另一個控件的子控件,則子控件將移動到 z 順序的前面。 BringToFront 不會使控件成為頂級控件,也不會引發(fā) Paint 事件。

(3)Control.UpdateZOrder 方法

按其父級的 z 順序更新控件。

protected void UpdateZOrder ();

UpdateZOrder 方法更新控件在其父控件的 z 順序中的位置。例如,如果此控件是添加到 Control.ControlCollection 中的新創(chuàng)建的控件,則 z 順序將更新為添加到后面的新控件。

(4) ListView控件的Items.Add方法

ListView控件的Items屬性用來獲取包含控件中所有項的集合,其Add方法用來將項添加到ListView列表中。

public virtual ListViewltem Add(string key,string text,int imagelndex)

參    數(shù)說    明參    數(shù)說    明
key項的名稱imageIndex要為該項顯示的圖像的索引
text項的文本返回值添加到集合中的ListViewItem

5) Z-Order

C# 中的 Z-Order 是一種確定窗口或控件在屏幕上的堆疊順序的方式。它由窗口或控件在坐標系中的 Z 值決定。具有更高 Z 值的窗口或控件位于具有較低 Z 值的窗口或控件之上。

在 C# 中,您可以使用 SendToBack 方法將指定控件發(fā)送到 Z-Order 的末尾,這意味著它將位于所有其他控件之后。這在您想要創(chuàng)建一個透明窗口或控件,并且需要將其放在其他所有控件之后的情況下非常有用。

到此這篇關于基于C#設計一個帶導航菜單的主界面的文章就介紹到這了,更多相關C#帶導航菜單界面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#鍵盤輸入回車鍵實現(xiàn)點擊按鈕效果的方法

    C#鍵盤輸入回車鍵實現(xiàn)點擊按鈕效果的方法

    這篇文章主要介紹了C#鍵盤輸入回車鍵實現(xiàn)點擊按鈕效果的方法,可實現(xiàn)用回車鍵代替點擊按鈕的功能,是非常實用的技巧,需要的朋友可以參考下
    2014-09-09
  • C#實現(xiàn)支付寶沙箱支付的項目實踐

    C#實現(xiàn)支付寶沙箱支付的項目實踐

    本文主要介紹了C#實現(xiàn)支付寶沙箱支付的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • c# 免費組件html轉pdf的實現(xiàn)過程

    c# 免費組件html轉pdf的實現(xiàn)過程

    這篇文章主要介紹了c# 免費組件html轉pdf的實現(xiàn)過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • C# 給PPT中的圖表添加趨勢線的方法

    C# 給PPT中的圖表添加趨勢線的方法

    本文內容分享通過C#程序代碼給PPT文檔中的圖表添加數(shù)據(jù)趨勢線的方法,需要的朋友可以參考下面文章的具體內容
    2021-09-09
  • C# Directory.GetFiles()函數(shù)案例詳解

    C# Directory.GetFiles()函數(shù)案例詳解

    這篇文章主要介紹了C# Directory.GetFiles()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • c#對list排序示例

    c#對list排序示例

    本文主要介紹了c#對List成員排序的示例,大家參考使用吧
    2014-01-01
  • C# 多線程更新界面的錯誤的解決方法

    C# 多線程更新界面的錯誤的解決方法

    這篇文章主要介紹了C# 多線程更新界面的錯誤方法,由于一個線程的程序,如果調用一個功能是阻塞的,那么就會影響到界面的更新,導致使用人員操作不便。所以往往會引入雙線程的工作的方式,主線程負責更新界面和調度,而次線程負責做一些阻塞的工作,便有了下面春雨里方法
    2021-10-10
  • WinForm遍歷窗體所有子控件的方法

    WinForm遍歷窗體所有子控件的方法

    這篇文章主要介紹了WinForm遍歷窗體所有子控件的方法,涉及C#遞歸遍歷相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 解決C#中WebBrowser的DocumentCompleted事件不執(zhí)行的實現(xiàn)方法

    解決C#中WebBrowser的DocumentCompleted事件不執(zhí)行的實現(xiàn)方法

    本篇文章是對C#中WebBrowser的DocumentCompleted事件不執(zhí)行解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 系統(tǒng)講解C#中文件讀寫的核心技術與實踐指南

    系統(tǒng)講解C#中文件讀寫的核心技術與實踐指南

    文件讀寫是軟件開發(fā)中最基礎也最頻繁的操作之一,本文系統(tǒng)闡述了C#文件讀寫的核心技術與實踐要點,文中的示例代碼講解詳細,希望對大家有一定的幫助
    2026-05-05

最新評論

南华县| 和政县| 讷河市| 黑龙江省| 靖西县| 台安县| 铜梁县| 北京市| 汝阳县| 安国市| 林口县| 博罗县| 女性| 朝阳市| 视频| 奉贤区| 开化县| 安溪县| 宝山区| 高邮市| 南靖县| 日喀则市| 琼中| 盐津县| 电白县| 武穴市| 新乡县| 砀山县| 西乌珠穆沁旗| 巴中市| 蓬莱市| 海城市| 城口县| 玛沁县| 长宁县| 普兰县| 上杭县| 富源县| 杭锦后旗| 佛坪县| 闽侯县|