C# Windows Forms应用程序-002

目录

项目结构

主类和命名空间  

构造函数和析构函数  

初始化组件 (InitializeComponent)

按钮点击事件处理程序

主程序入口点

项目截图:

完整代码:


项目结构

这个项目是一个简单的C# Windows Forms应用程序,获取指定文件的根信息,包含一个主窗体 Form1 和一些控件(标签、文本框、按钮等)。整个项目的主要功能是让用户选择文件或文件夹,并提供了一些关于这些路径的信息。

主类和命名空间  

        命名空间: Files  

        类: Form1 继承自 System.Windows.Forms.Form  

成员变量  

        Label label1: 显示提示信息的标签。  

        TextBox textBox1: 用户输入或显示文件/文件夹路径的文本框。  

        Button button1, button2, button3, button4: 四个按钮分别用于不同的操作。         

        FolderBrowserDialog folderBrowserDialog1: 文件夹浏览对话框。  

        OpenFileDialog openFileDialog1: 文件打开对话框。  

        IContainer components: 窗体设计器使用的容器对象。

构造函数和析构函数  

        构造函数: 调用 InitializeComponent() 方法来初始化窗体及其控件。  

        析构函数: 如果 components 不为空,则释放其资源。  

初始化组件 (InitializeComponent)

        这部分代码由Windows Forms设计器生成,主要负责设置各个控件的位置、大小和其他属性。例如:  

                设置 label1 的位置、大小和文本内容。  

                设置 textBox1 的初始值为 "C:\\Windows"。  

                设置每个按钮的位置、大小和点击事件处理程序。  

按钮点击事件处理程序

        button1_Click:当用户点击“浏览文件夹”按钮时,会弹出一个文件夹选择对话框。如果用户选择了某个文件夹并确认,所选文件夹的路径会被填入 textBox1 中。

private void button1_Click(object sender, EventArgs e)
{
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
    {
        textBox1.Text = folderBrowserDialog1.SelectedPath;
    }
}

button2_Click:当用户点击“浏览文件”按钮时,会弹出一个文件打开对话框。如果用户选择了某个文件并确认,所选文件的路径会被填入 textBox1 中。

private void button2_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        textBox1.Text = openFileDialog1.FileName;
    }
}

button3_Click:当用户点击“显示根信息”按钮时,会获取当前路径所在的驱动器信息,并通过消息框显示出来。这包括驱动器类型、总空间和可用空间。

private void button3_Click(object sender, EventArgs e)
{
    string path = textBox1.Text;
    try
    {
        DriveInfo driveInfo = new DriveInfo(Path.GetPathRoot(path));
        MessageBox.Show( $ "驱动器类型: {driveInfo.DriveType}" + $ "总空间: {driveInfo.TotalSize} bytes
" +
                         $ "可用空间: {driveInfo.AvailableFreeSpace} bytes");
    }
    catch (Exception ex)
    {
        MessageBox.Show("无法获取驱动器信息: " + ex.Message);
    }
}

button4_Click:当用户点击“父目录信息”按钮时,会将 textBox1 中的路径更改为该路径的父目录路径。如果已经是根目录,则弹出提示信息。

private void button4_Click(object sender, EventArgs e)
{
    string path = textBox1.Text;
    try
    {
        string parentDir = Path.GetDirectoryName(path);
        if (!string.IsNullOrEmpty(parentDir))
        {
            textBox1.Text = parentDir;
        }
        else
        {
            MessageBox.Show("当前路径已是根目录或无效路径。");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("无法获取父目录信息: " + ex.Message);
    }
}

主程序入口点

  • 在 Program 类中定义了静态方法 Main,这是应用程序的入口点。调用 Application.Run(new Form1()) 来启动应用程序并显示主窗体 Form1
static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

项目截图:

C# Windows Forms应用程序-002_第1张图片

完整代码:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Windows.Forms;

namespace Files
{
    public class Form1 : System.Windows.Forms.Form
    {
        private Label label1;
        private TextBox textBox1;
        private Button button1;
        private FolderBrowserDialog folderBrowserDialog1;
        private Button button2;
        private Button button3;
        private OpenFileDialog openFileDialog1;
        private Button button4;
        private IContainer components = null;

        public Form1()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码
        private void InitializeComponent()
        {
            this.label1 = new Label();
            this.textBox1 = new TextBox();
            this.button1 = new Button();
            this.folderBrowserDialog1 = new FolderBrowserDialog();
            this.button2 = new Button();
            this.button3 = new Button();
            this.openFileDialog1 = new OpenFileDialog();
            this.button4 = new Button();
            this.SuspendLayout();

            // label1
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(15, 22);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(159, 13);
            this.label1.TabIndex = 0;
            this.label1.Text = "文件或文件夹全路径名:";

            // textBox1
            this.textBox1.Location = new System.Drawing.Point(17, 57);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(320, 20);
            this.textBox1.TabIndex = 1;
            this.textBox1.Text = @"C:\Windows";

            // button1
            this.button1.Location = new System.Drawing.Point(17, 104);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(80, 23);
            this.button1.TabIndex = 2;
            this.button1.Text = "浏览文件夹";
            this.button1.Click += new EventHandler(this.button1_Click);

            // button2
            this.button2.Location = new System.Drawing.Point(97, 104);
            this.button2.Name = "button2";
            this.button2.Size = new System.Drawing.Size(80, 23);
            this.button2.TabIndex = 5;
            this.button2.Text = "浏览文件";
            this.button2.Click += new EventHandler(this.button2_Click);

            // button3
            this.button3.Location = new System.Drawing.Point(177, 104);
            this.button3.Name = "button3";
            this.button3.Size = new System.Drawing.Size(80, 23);
            this.button3.TabIndex = 6;
            this.button3.Text = "显示根信息";
            this.button3.Click += new EventHandler(this.button3_Click);

            // button4
            this.button4.Location = new System.Drawing.Point(257, 104);
            this.button4.Name = "button4";
            this.button4.Size = new System.Drawing.Size(80, 23);
            this.button4.TabIndex = 7;
            this.button4.Text = "父目录信息";
            this.button4.Click += new EventHandler(this.button4_Click);

            // Form1
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(400, 175);
            this.Controls.Add(this.button4);
            this.Controls.Add(this.button3);
            this.Controls.Add(this.button2);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Controls.Add(this.label1);
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "Form1";
            this.StartPosition = FormStartPosition.CenterScreen;
            this.Text = "文件操作示例";
            this.ResumeLayout(false);
            this.PerformLayout();
        }
        #endregion

        private void button1_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = folderBrowserDialog1.SelectedPath;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = openFileDialog1.FileName;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string path = textBox1.Text;
            try
            {
                DriveInfo driveInfo = new DriveInfo(Path.GetPathRoot(path));
                MessageBox.Show($"驱动器类型: {driveInfo.DriveType}\n" +
                                $"总空间: {driveInfo.TotalSize} bytes\n" +
                                $"可用空间: {driveInfo.AvailableFreeSpace} bytes");
            }
            catch (Exception ex)
            {
                MessageBox.Show("无法获取驱动器信息: " + ex.Message);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string path = textBox1.Text;
            try
            {
                string parentDir = Path.GetDirectoryName(path);
                if (!string.IsNullOrEmpty(parentDir))
                {
                    textBox1.Text = parentDir;
                }
                else
                {
                    MessageBox.Show("当前路径已是根目录或无效路径。");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("无法获取父目录信息: " + ex.Message);
            }
        }
    }

    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}


这是个简单的Windows Forms应用程序展示了如何使用基本的Windows Forms控件(如标签、文本框、按钮)来构建一个交互式界面。通过按钮点击事件处理程序,实现了文件夹和文件的选择,以及获取和显示路径相关信息的功能。

你可能感兴趣的:(窗体应用,C#,c#,开发语言,网络安全,笔记,程序人生)