目录
一 、创作灵感
学习C#语言也有一段时间了,一直都用Winform自带的UI界面,看起来不是特别美观,自己创建UI界面库也很耗时,在网上找了SunnyUI图形界面库用于学习交流,今日先导入SunnyUI库并写一个读写CSV文件的小程序,有需要的小伙伴可以自提。
二、Visual Studio 2022引用SunnyUI
Visual Studio 2022引用SunnyUI比较简单,主要步骤以视频演示:
两分钟学会C#引用SunnyUI图形界面库
三、用SunnyUI写的CSV文件读取小程序演示
1、SunnyUI界面
界面如下,文本区域主要有写数据区域(uiRichTextBox1)、读数据区域(uiRichTextBox2)、文件名(uiTextBox2)、数据路径(uiTextBox1),按键有写数据、清空写、读数据、清空读、数据保存路径。具体功能可以看视频演示。
2、源代码
代码中主要记住要使用命名空间 using Sunny.UI,且引用中一定要引用SunnyUI和SunnyUI.Common,引用方法详看第二大点中的视频,具体引用的库如下:
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.Design;
using Sunny.UI;
namespace SunnyUI_Study_1
{
public partial class Form1 : UIForm
{
public Form1()
{
InitializeComponent();
}
private void uiButtonWriteData_Click(object sender, EventArgs e) //写数据
{
string filename = uiTextBox1.Text + "\\" + uiTextBox2.Text; //生成文件名路径
string data = uiRichTextBox1.Text; //把写数据区域的数据赋值给字符串变量
WriteDataCSV(filename, data); //向文件中写入数据
MessageBox.Show("数据已写完");
return;
}
public void WriteDataCSV(string FileNamePath,string data) //创建方法,写CSV数据
{
//写入数据
if (!File.Exists(FileNamePath)) //判断文件不存在则创建新文件并写入数据
{
try
{
FileStream fileStream = new FileStream(FileNamePath, FileMode.Create, FileAccess.Write); //实例化文件流类,并指定为创建模式和写
StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8); //实例化流写类,WriteLine()将以UTF8的编码方式写入数据
streamWriter.WriteLine(data); //写入数据
streamWriter.Close(); //先关闭流写,写完一定要记得关闭,否则文件会被程序打开占用
fileStream.Close(); //再关闭文件流写,写完一定要记得关闭,否则文件会被程序打开占用
}
catch
{
}
}
else //否则在新文件内容末尾添加并保存数据
{
try
{
FileStream fileStream = new FileStream(FileNamePath, FileMode.Append, FileAccess.Write); //实例化文件流类,并指定为追加模式和写
StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8); //实例化流写类,WriteLine()将以UTF8的编码方式写入数据
streamWriter.WriteLine(data);
streamWriter.Close(); //先关闭流写,写完一定要记得关闭,否则文件会被程序打开占用
fileStream.Close(); //再关闭文件流写,写完一定要记得关闭,否则文件会被程序打开占用
}
catch
{
}
}
}
public string ReadDataCSV(string FileNamePath) //创建方法,写CSV数据
{
string data = string.Empty;
//读取数据
if (File.Exists(FileNamePath)) //判断文件存在则读取数据
{
try
{
FileStream fileStream = new FileStream(FileNamePath, FileMode.Open, FileAccess.Read); //实例化文件流类,并指定为创建模式和读
StreamReader streamReader = new StreamReader(fileStream, Encoding.UTF8); //实例化流读类,将以UTF8的编码方式读取数据
data = streamReader.ReadToEnd(); //读取数据
streamReader.Close(); //先关闭流读,读完一定要记得关闭,否则文件可能会被程序打开占用
fileStream.Close(); //再关闭文件流读,读完一定要记得关闭,否则文件可能会被程序打开占用
return data;
}
catch
{
return data;
}
}
else
{
MessageBox.Show("要读取的文件不存在");
return data;
}
}
public string SelectFolderPath() //创建方法,选择文件夹路径
{
string folderPath = string.Empty; //创建空字符串变量
FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); // 创建一个FolderBrowserDialog实例
DialogResult result = folderBrowser.ShowDialog(); // 显示文件夹选择对话框
if (result == DialogResult.OK) // 检查是否选择了文件夹并且点击了确定按钮
{
folderPath = folderBrowser.SelectedPath; // 获取用户选择的文件夹路径
return folderPath; //返回选中的文件夹路径字符串
}
else
{
return string.Empty;
}
}
private void uiButtonDataSavePath_Click(object sender, EventArgs e) //选择保存数据路径
{
uiTextBox1.Text = SelectFolderPath();
}
private void uiButtonReadData_Click(object sender, EventArgs e) //读数据
{
string filename = uiTextBox1.Text + "\\" + uiTextBox2.Text; //生成文件名路径
uiRichTextBox2.Text = ReadDataCSV(filename); //读取文件中所有数据
}
private void uiButtonClearWrite_Click(object sender, EventArgs e) //清空写区域
{
uiRichTextBox1.Text = string.Empty;
}
private void uiButtonClearRead_Click(object sender, EventArgs e) //清空读区域
{
uiRichTextBox2.Text = string.Empty;
}
}
}
3、视频演示
三分钟学会C# CSV文件的读写(SunnyUI学习一)
四、项目文件资源
项目文件资源附件在文章上面显示,直接点击下载即可。
五、结语
这篇文章借助SunnyUI的学习顺便学了CSV文件的读写、文件夹路径的选择。今后继续学习更多分享。