当前位置: 首页 > ops >正文

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());}
}

项目截图:

完整代码:

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();// label1this.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 = "文件或文件夹全路径名:";// textBox1this.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";// button1this.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);// button2this.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);// button3this.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);// button4this.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);// Form1this.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();}#endregionprivate 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控件(如标签、文本框、按钮)来构建一个交互式界面。通过按钮点击事件处理程序,实现了文件夹和文件的选择,以及获取和显示路径相关信息的功能。

http://www.xdnf.cn/news/8682.html

相关文章:

  • # 使用 Hugging Face Transformers 和 PyTorch 实现信息抽取
  • 数据结构第2章 (竟成)
  • 神经网络加上注意力机制,精度反而下降,为什么会这样呢?注意力机制的本质是什么?如何正确使用注意力机制?注意力机制 | 深度学习
  • 清山垃圾的3个问题
  • 6.4.1最小生成树
  • 第二章网络io
  • 对WireShark 中的EtherCAT抓包数据进行解析
  • C语言指针进阶:通过地址,直接修改变量的值
  • iOS App启动优化(冷启动、热启动)
  • 2025年渗透测试面试题总结-匿名[实习]安全工程师(安全厂商)(题目+回答)
  • 【HTML-12】HTML表格常用属性详解:从基础到高级应用
  • 显存不够?节约显存高效微调语言模型的五种方法及实验
  • 0基础 Git 代码操作
  • 黑马k8s(十六)
  • 题目 3325: 蓝桥杯2025年第十六届省赛真题-2025 图形
  • whisper相关的开源项目 (asr)
  • 动态规划-蓝桥杯-健身
  • Apache OFBiz 17.12.01 的远程命令执行漏洞 -Java 反序列化 + XML-RPC 请求机制
  • MCP技术体系介绍
  • ETL工具:Kettle,DataX,Flume,(Kafka)对比辨析
  • Java高频面试之并发编程-20
  • 03. C#入门系列【变量和常量】编程世界里的“百变魔盒”与“永恒石碑”
  • XSS脚本攻击-DDoS僵王博士-SQL注入-考试周前的邮件
  • C 语言学习笔记
  • python的pip怎么配置的国内镜像
  • CodeBuddy实现图片压缩工具
  • 第 29 场 蓝桥·算法入门赛
  • Java程序员学从0学AI(三)
  • 实验7 HTTP协议分析与测量
  • LangGraph实现多智能体的方法