C#实现单词本功能
作者:、你我山前没相见 发布时间:2021-11-06 13:08:23
标签:C#,单词本
本文实例为大家分享了C#实现单词本功能的具体代码,供大家参考,具体内容如下
看到网上有类似的教程视频实现单词本,于是自己敲了一个实现单词本功能的小项目,在实现期间,发现可以有两种版本来实现单词本功能,此处选择A版来为大家分享经验,同时留作自己日后复习巩固,有疏漏错误的地方,还望大神热心指出,在下感激不尽.
A版实现以下功能:
1.利用文件流读取文本文件
2.利用openfiledialog实现查找文件的功能
3.存取文本文件路径和显示文本文件内容的功能
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApp6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();//每点击一次选择文件按钮自动清空文本框内已经打开的文件内容
textBox2.Clear();//清空文件路径的内容
OpenFileDialog filename = new OpenFileDialog();//定义打开文件
filename.InitialDirectory = Application.StartupPath;//初始路径
filename.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";//设置打开文件的类型
filename.FilterIndex = 2;//设置文件类型的显示顺序
if (filename.ShowDialog() == DialogResult.OK)
{
textBox2.Text = filename.FileName.ToString();//将路径显示在文本框
StreamReader sr = new StreamReader(filename.FileName, Encoding.Default);
//将文件通过stream流读取
string content = sr.ReadToEnd();//把文件读完存给content
string[] lines = content.Split('\n');//将文件内容分割成一行一行存给数组
for (int i = 0; i < lines.Length; i++)
{
textBox1.Text += lines[i++]+"\n";
//List<string> english = new List<string>();
//List<string> chinese = new List<string>();
//string[] words = lines[i].Trim().Split('\t');
//if (words.Length < 2)
//continue;
//english.Add(words[0]);
//chinese.Add(words[1]);
}
sr.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();//此处点击返回按钮同样自动清空文本框文件内容
textBox2.Clear();//清除文件路径内容
}
}
}
以上为我编写的文件的代码,被注释掉的代码部分用以实现分割音标出来再显示的功能,还未完善好,所以注释掉了,有感兴趣的可以完善完善共同探讨。
这是我的窗口
我的文本文件内容是这样
这是实现的效果
项目任存在可改进的空间,有兴趣的伙伴可以改进改进,将你的作品放在评论区共同讨论
来源:https://blog.csdn.net/u011367578/article/details/82950854


猜你喜欢
- 使用方法是这样的,Activity.showDialog()激发Activity.onCreateDialog()创建Dialog,然后显示
- 环境springboot1.5.9完整代码,内有sql,先建库,在运行sql建表,sql中已插入测试的数据。https://github.c
- 简单版/** * 产生4位随机数(0000-9999) * * @return 4位随机数 &nb
- 某天突然发现idea非常重要的快捷键ctrl+shift+f无效了,网上搜了很多都说是qq快捷键冲突,但是找了下qq快捷键却没有解决,现在给
- 实现HandlerInterceptor接口或者继承HandlerInterceptor的子类,比如Spring 已经提供的实现了Handl
- MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册.只需在代码中通过对类与方法的注解, 即可完成注册.
- 1.JavaBean转Map1.1.简介这篇博客是通过反射来进行实现转换的在学习redis中,发现了一个知识点,就是Java对象转map,视
- 在Spring 5 Webflux中,配置CORS,可以通过自定义WebFilter实现:注:此种写法需真实跨域访问,监控header中才会
- 一、概述从3.1版本起,Spring框架就已经支持将缓存添加到现有的Spring应用中,和事务支持一样,缓存抽象允许在对代码影响最小的情况下
- C# using 三种使用方式介绍1.using指令。using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的
- Kotlin定义变量一般有如下写法lateinit var name: String var age: String? = null那么用l
- 引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些
- Spring 注入static属性值本文介绍Spring中如何从属性文件给static字段注入值。实际应用中一些工具类中static属性值需
- 导读12月总体来说互联网的技术圈是非常热闹的,chatGPT爆火,SpringBoot3.0发布等重磅陆消息续进入大家的视线,而本文作者将以
- 静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用。因此想在静态方法中直接引用非静态方法是不可能的,因为不知道调用哪个对象
- 本文实例讲述了java编程实现基于UDP协议传输数据的方法。分享给大家供大家参考,具体如下:UDP协议(User Datagram Prot
- 一、 springBoot + Mybatis配置完成后,访问数据库遇到的问题首先出现这个问题,肯定是xml文件与mapper接口没有匹配上
- 具体代码如下所示:public class Student { private String id; private
- 今天学习到sql中的ResultSet,用到了获取总函数,网上百度说是使用getRow()方法,但是一值返回0.后台调试才发现getRow(
- 背景在很多时候我们代码中的一些逻辑操作并不能够硬编码到代码中,我们可能希望通过配置来完成这个操作,所以这个时候我们就需要有一些脚本语言能够处