【第24】天24c#今日小结

1.键盘事件

窗体form的KeyDown 属性KeyPress 属性KeyUp属性都是键盘事件。

KeyDown:在按下键盘上的某个键触发

KeyPress:在控件具有焦点并且按下并释放键盘上的某个键触发。

KeyUp:释放某个键触发

这里是一个钢琴的小例子:

cs 复制代码
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    //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();// 播放音频
        }

    }
}

其中音频为本地文件。

2.富文本

富文本框(RichTextBox)控件是一个功能强大的文本编辑控件,它允许用户输入和编辑文本,同时支持丰富的文本格式,如字体、颜色、段落样式等。与标准的TextBox控件相比,RichTextBox控件提供了更高级的文本处理功能。

AppendText 追加新新文本

richTextBox1.AppendText("\n大河之剑天上来\n");

1.添加文本

cs 复制代码
 private void button4_Click(object sender, EventArgs e)
 {
   
     OpenFileDialog fileDialog = new OpenFileDialog(); // 创建文件对话框
     DialogResult result =  fileDialog.ShowDialog();//打开对话框
     if (result == DialogResult.OK)
     {
         //  fileDialog.FileName  C:\Users\Administrator\Desktop\新建文本文档 - 副本.txt
         string data =   File.ReadAllText(fileDialog.FileName,Encoding.Default);
         richTextBox1.AppendText(data+"\n");
     }

 }

2.修改字体

cs 复制代码
  private void button1_Click(object sender, EventArgs e)
  {
      FontDialog fontDialog = new FontDialog();//字体对话框
      if (fontDialog.ShowDialog()==DialogResult.OK)
      {
          //SelectionFont 选中文本的字体
          richTextBox1.SelectionFont = fontDialog.Font;
      }
  }

3.修改字体颜色

cs 复制代码
 private void button2_Click(object sender, EventArgs e)
 {
     ColorDialog colorDialog = new ColorDialog();//颜色取色对话框
     if (colorDialog.ShowDialog()==DialogResult.OK)
     {
         //richTextBox1.SelectionColor 富文本选中的字体颜色
         richTextBox1.SelectionColor = colorDialog.Color;//colorDialog.Color 取色器选取的颜色
     }

 }

4.修改字体背景颜色

cs 复制代码
private void button3_Click(object sender, EventArgs e)
{
    ColorDialog colorDialog = new ColorDialog();//颜色取色对话框
    if (colorDialog.ShowDialog() == DialogResult.OK)
    {
        //richTextBox1.SelectionBackColor 富文本选中的字体背景颜色
        richTextBox1.SelectionBackColor= colorDialog.Color;//colorDialog.Color 取色器选取的颜色
    }

}

3.时间选择器和进度条

A.时间选择器

DateTimePicker控件允许用户选择日期和时间,并以指定的格式显示。

主要属性:

Value:获取或设置控件中选定的日期/时间。

CustomFormat:当Format设置为Custom时,可以指定自定义格式字符串。

MinDate和MaxDate:允许选择的最小和最大日期。

Format:设置日期时间的显示格式。可选值:

Long::长日期格式(例如:2023年5月15日)

Short:短日期格式(例如:2023/5/15)

Time:时间格式(例如:15:30:00)

Custom:自定义格式(需要设置CustomFormat属性)

cs 复制代码
 public Form1()
 {
     InitializeComponent();
     dateTimePicker1.Format = DateTimePickerFormat.Custom;// 设置时间选择器格式为自定义格式
     dateTimePicker1.CustomFormat = "MMM dd yyyy HH:mm:ss dddd";
     progressBar1.BackColor = Color.GreenYellow;
     
 }

B.进度条

ProgressBar控件用于显示操作的进度,通常用于长时间运行的操作。

主要属性:

1.MinimumMaximum:进度条的最小值和最大值,默认为0和100。

2.Value:当前进度值,必须在Minimum和Maximum之间。

常用方法:

PerformStep():按照Step属性增加进度值。

4.csv数据格式

csv数据格式:表格数据格式,

以记事本的方式打开 数据格式为:

姓名,年龄,性别

张三,20,男

李四,20,女

把记事本后缀名改成csv格式,以excel表格的方式展示数据(微软excel可能不适用)

cs 复制代码
//存储数据的方法
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))
    {
        MessageBox.Show(path);
        //csv如果不存在,证明第一次写入,把表头写入csv文件

        // File.Create(path);
        //1 创建文件流(水管)
        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))
    {
       return sw1.ReadToEnd();
    }
}

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

private void button2_Click(object sender, EventArgs e)
{
    MessageBox.Show(ReadData());
}
相关推荐
ytttr87339 分钟前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
天远Date Lab41 分钟前
Python实战:对接天远数据手机号码归属地API,实现精准用户分群与本地化运营
大数据·开发语言·python
listhi52043 分钟前
基于Gabor纹理特征与K-means聚类的图像分割(Matlab实现)
开发语言·matlab
qq_433776421 小时前
【无标题】
开发语言·php
Davina_yu2 小时前
Windows 下升级 R 语言至最新版
开发语言·windows·r语言
阿珊和她的猫2 小时前
IIFE:JavaScript 中的立即调用函数表达式
开发语言·javascript·状态模式
listhi5202 小时前
卷积码编码和维特比译码的MATLAB仿真程序
开发语言·matlab
yuan199972 小时前
基于主成分分析(PCA)的故障诊断MATLAB仿真
开发语言·matlab
J_liaty2 小时前
Java版本演进:从JDK 8到JDK 21的特性革命与对比分析
java·开发语言·jdk
翔云 OCR API3 小时前
发票查验接口详细接收参数说明-C#语言集成完整示例-API高效财税管理方案
开发语言·c#