C#控件事件与数据存储实战

《键盘事件》

form绑定事件

获得绑定事件的控件的tag属性

//SoundPlayer 播放音频的一个类
SoundPlayer player = new SoundPlayer();
//label 的绑定事件

private void label1_Click(object sender, EventArgs e)
{
Label label = (Label)sender;
string tag=label.Tag.ToString();//获得绑定事件的控件的tag属性,tag是对象类型
string path = "sounds1/" + tag + ".wav";
player.SoundLocation= path;//SoundLocation 音频的路径
player.Load();//加载资源
player.Play();//播放音频

}
//form窗体绑定的事件

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
//MessageBox.Show(e.KeyValue + "");//1-9的数字 对应的是49-57范围
if (e.KeyValue >= 49 && e.KeyValue <= 57)
{
player.SoundLocation = "sounds1/" + (e.KeyValue-48)+ ".wav";
player.Load();
player.Play();
}
}

效果如下:

用keys1-9 或者用鼠标点击文本都会触发事件 发出声音

《富文本》

richTextBox

四个代码事件代码如下

richTextBox1.AppendText("\n大河之剑天上来\n");//AppendText 追歼新文本

//MessageBox.Show(richTextBox1.Text);

}

//添加文本

private void button4_Click(object sender, EventArgs e)

{

OpenFileDialog fileDialog= new OpenFileDialog();//创建文件对话框

DialogResult result = fileDialog.ShowDialog();//打开对话框

if (result == DialogResult.OK)

{

string data = File.ReadAllText(fileDialog.FileName,Encoding.Default);

richTextBox1.AppendText(data+"\n");

}

}

//修改字体

private void button1_Click(object sender, EventArgs e)

{

FontDialog fontDialog= new FontDialog();//字体对话框

if (fontDialog.ShowDialog() == DialogResult.OK)

{

//SelectionFont 选中文本的字体

richTextBox1.SelectionFont= fontDialog.Font;

}

}

//修改字体背景颜色

private void button3_Click(object sender, EventArgs e)

{

ColorDialog colorDialog = new ColorDialog();//颜色取色对话框

if (colorDialog.ShowDialog() == DialogResult.OK)

{

//richTextBox1.SelectionColor = colorDialog.Color;//colorDialog取色器选取的颜色

richTextBox1.SelectionBackColor = colorDialog.Color;// colorDialog.Color 取色器选取的颜色

}

}

//修改字体颜色

private void button2_Click(object sender, EventArgs e)

{

ColorDialog colorDialog= new ColorDialog();//颜色取色对话框

if (colorDialog.ShowDialog()==DialogResult.OK)

{

richTextBox1.SelectionColor = colorDialog.Color;//colorDialog取色器选取的颜色

// richTextBox1.SelectionBackColor = colorDialog.Color;// colorDialog.Color 取色器选取的颜色

}

}

效果如下:

《时间选择器和进度条》

图列如下

代码如下

{

InitializeComponent();

dateTimePicker1.Format = DateTimePickerFormat.Custom;//设置时间选择器格式为自定义格式

dateTimePicker1.CustomFormat = "MMM dd yyyy HH:mm:ss:dddd";

}

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)

{

label1.Text=((DateTimePicker)sender).Value.ToString();

}

//点击进度条

private void progressBar1_Click(object sender, EventArgs e)

{

if (progressBar1.Value<100)

{

progressBar1.Value += progressBar1.Step;

}

}

效果如下:

《csv数据格式》

/csv数据格式:表格数据格式
//以记事本的方式打开 数据格式为
//姓名,年龄,性别
//张三,20,男
//李四,20,女

//把记事本后缀名改为csv格式,以excel表格的方式展示数据

}
//存储数据的方法
public void SaveData(string name, int age, string sex)
{
//Debug下的data文件夹
string filePath = Directory.GetCurrentDirectory() + "\\data";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);//如果文件不存在 创建文件夹data
}
string path = $"{filePath}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";//csv文件的名称
if (File.Exists(path))
{
//csv如果不存在,证明第一次写入,把表头写入csv
//File.Create(path);
//创建文件流(水管)
FileStream fs = new FileStream(path,FileMode.Create,FileAccess.Write);
//2创建写入工具(抽水泵) 参数可以是路径 也意识文件流
StreamWriter sw = new StreamWriter(fs,Encoding.Default);
//3组织写入内容
StringBuilder sb= new StringBuilder();//可变字符串
sb.Append("姓名").Append(",").Append("年龄").Append(",").Append("性别");

//4 开始写入
sw.WriteLine(sb.ToString());
//5关闭和释放资源
sw.Close();//关闭写入工具
sw.Dispose();//释放资源
fs.Close();
fs.Dispose();
}
//如果csv已经存在 证明表头存在
//以下写入内容的
using (StreamWriter sw1 = new StreamWriter(path,true,Encoding.Default))//参数2是否是追加的方式
{
//写入内容
StringBuilder sb = new StringBuilder(); // 可变字符串
sb.Append(name).Append(",").Append(age).Append(",").Append(sex);
sw1.WriteLine(sb.ToString());
}
}
//读取数据的方法
public string ReadData()
{
string filePath = Directory.GetCurrentDirectory() + "\\data";
string path = $"{filePath}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";//csv文件的名称

using (StreamReader sw1 = new StreamReader(path,Encoding.Default))//参数2是否是追加的方式
{
return sw1.ReadToEnd();
}
}

//写入
private void button1_Click(object sender, EventArgs e)
{
SaveData("坤坤", 30, "男");
}

private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(ReadData());
}

效果如下:

相关推荐
渡我白衣2 分钟前
计算机组成原理(13):多路选择器与三态门
开发语言·javascript·ecmascript·数字电路·计算机组成原理·三态门·多路选择器
HUST4 分钟前
C语言 第十讲:操作符详解
c语言·开发语言
田里的水稻8 分钟前
matlab_绘图线条颜色显示和点的形状显示
开发语言·matlab
CCPC不拿奖不改名11 分钟前
python基础:python语言的数据结构+面试习题
开发语言·数据结构·python·面试
Tan385112 分钟前
陪读蛙 Read Frog 配置 API 教程|低成本实现高质量翻译
开发语言·机器翻译·自动翻译·api key·tensdaq·陪读蛙·read frog
凑凑的小手办14 分钟前
C语言基础(一)
c语言·开发语言
lly20240616 分钟前
Lua 循环
开发语言
※※冰馨※※17 分钟前
【QT】初始化显示时正常,操作刷新后布局显示问题。
开发语言·c++·windows·qt
D_FW18 分钟前
数据结构第四章:串
java·开发语言
Dylan的码园18 分钟前
JAVA中对象的几种比较
java·开发语言