C#界面设计之文本阅读器的设计
下面来个比较大的实例,通过它的学习,可以快速掌握各种控件的联合使用,先来效果图:
主要代码如下:
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 MultiTextReader
{public partial class FrmReader : Form{public FrmReader(string fileName){this._FileName = fileName; //更新当前打开文件的文件名InitializeComponent( ); }//表示当前子窗体所打开文件的文件名private string _FileName;//窗体加载时显示加载并显示文件内容private void FrmReader_Load(object sender, EventArgs e){this.Text = this._FileName; //设置当前窗体的标题StreamReader sr; //文件流对象srsr = new StreamReader(this._FileName, Encoding.Default); //打开指定文件while (!sr.EndOfStream) //如果文件没有读取完成继续读取{string line = sr.ReadLine( ); //从文件读取一行this.tbTexts.AppendText(line); //显示文件数据到文本框this.tbTexts.AppendText(System.Environment.NewLine); }sr.Close( ); //关闭文件}public void SetViewSettings(Color bkColor, Color freColor, Font fnt){this.tbTexts.BackColor = bkColor;this.tbTexts.ForeColor = freColor;this.tbTexts.Font = fnt;}}
}
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;namespace MultiTextReader
{public partial class FrmMain : Form{private int childFormNumber = 0;public FrmMain( ){InitializeComponent( );}private void ShowNewForm(object sender, EventArgs e){Form childForm = new Form( );childForm.MdiParent = this;childForm.Text = "窗口 " + childFormNumber++;childForm.Show( );}private void OpenFile(object sender, EventArgs e){OpenFileDialog ofdlg = new OpenFileDialog( ); //创建OpenFileDialog对象ofdlg//设置打开文件对话框的默认路径为“我的文档”ofdlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);ofdlg.Filter = "文本文件(*.txt)|*.txt"; //设置只接受txt为扩展名的文件if (ofdlg.ShowDialog(this) == DialogResult.OK) //显示打开文件对话框{string fileName = ofdlg.FileName; //获取要打开的文件名FrmReader frm = new FrmReader(fileName); //创建查看文件的子窗体frmfrm.MdiParent = this; //设置子窗体frm的父窗体为当前窗体frm.Show( ); //显示子窗体}}private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e){SaveFileDialog saveFileDialog = new SaveFileDialog( );saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);saveFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (saveFileDialog.ShowDialog(this) == DialogResult.OK){string FileName = saveFileDialog.FileName;}}private void ExitToolsStripMenuItem_Click(object sender, EventArgs e){this.Close( );}private void CutToolStripMenuItem_Click(object sender, EventArgs e){}private void CopyToolStripMenuItem_Click(object sender, EventArgs e){}private void PasteToolStripMenuItem_Click(object sender, EventArgs e){}private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e){toolStrip.Visible = toolBarToolStripMenuItem.Checked;}private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e){statusStrip.Visible = statusBarToolStripMenuItem.Checked;}private void CascadeToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.Cascade);}private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.TileVertical);}private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.TileHorizontal);}private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e){LayoutMdi(MdiLayout.ArrangeIcons);}private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e){foreach (Form childForm in MdiChildren){childForm.Close( );}}private void aboutToolStripMenuItem_Click(object sender, EventArgs e){AboutBox dlg = new AboutBox( );dlg.ShowDialog(this);}private Color _ViewBackColor = Color.White; //阅读的背景色字段及默认值private Color _ViewForeColor = Color.Black; //阅读的前景色字段及默认值private Font _ViewFont = SystemFonts.DefaultFont; //阅读的字体字段及默认值//"选项"菜单处理函数,打开SettingDlg,并将新参数更新到已打开的子窗体private void optionsToolStripMenuItem_Click(object sender, EventArgs e){SettingDlg dlg = new SettingDlg(this._ViewBackColor, //用当前阅读参数创建SettingDlg对象dlgthis._ViewForeColor, this._ViewFont);if (dlg.ShowDialog(this) == DialogResult.OK) //显示参数设置对话框,并等待用户设置{this._ViewBackColor = dlg.GetBackColor( ); //获取用户最新的阅读参数this._ViewFont = dlg.GetFont( );this._ViewForeColor = dlg.GetForeColor( );foreach (Form frm in this.MdiChildren) //遍历所有子窗体{FrmReader frmRd = frm as FrmReader; //如果子窗体是FrmReader类型if (frmRd != null) //则更新最新参数到子窗体{frmRd.SetViewSettings(this._ViewBackColor, this._ViewForeColor, this._ViewFont);}}}}}
}
源代码已上传:http://download.csdn.net/detail/chongshangyunxiao321/9498206
C#界面设计之文本阅读器的设计相关推荐
- 文本朗读器的设计与制作
文本朗读器的设计与制作 2010年07月29日 文本朗读器的设计与制作 声音是携带信息的极其重要的媒体,是多媒体技术研究的一个重要的内容.而声音又包括人的话音.乐器声.动物发出的声音.及其产生的声音以 ...
- J2ME平台下文本阅读器的实现
J2ME平台下文本阅读器的实现 J2ME平台下文本阅读器的实现 摘要:本文利用J2ME技术开发了一个文本阅读器,实现了手机对文本文件的显示,给出了该程序的实现代码,并对其关键技术进行了详细阐述. 关键 ...
- 文本阅读器(txt reader) v0.3.1 linux bt
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- 开博记念及附上第一个android工程:Txt文本阅读器
开博记念 因工作需要学习安卓,对于安卓又完全是从零开始,故在这里记下学习总结,以记录学习工作中遇到的问题和解决办法. 由于有C++和C#基础,博主先是花了三天时间过了下JAVA的基本语法,然后就开始 ...
- 基于Android的本地电子书阅读器的设计与实现Ebook(1)
基于Android的本地电子书阅读器的设计与实现Ebook(1) 学习Android时间不久,试着做了一个本地电子书阅读器APP,因为知识浅薄并不能像其他大佬一样实现各种繁杂的功能,但可以实现基本的阅 ...
- 双语web阅读器+书城设计与实现
背景: 前段日子心血来潮,突然想做个小说阅读器,带翻译功能的. 原因大概来之已久了,主要是我本人是一个超级大书虫,特别喜欢看网络小说.经典小说.名著.心理学等"有意思"的书. 从接 ...
- 计算机,编码,文本阅读器 一
计算机的发明改变了世界,也改变了图书行业.书籍的买卖被下载取而代之.几百万字的文字被存取到几MB的文本文件中.一个小小的32GB的U盘,可以存放一个小型图书馆的书籍.当人们闲暇之时,掏出手机,打开电脑 ...
- 代码文本阅读器,虚拟机,linux
软件挑选原则:稳定,用户多,开源为佳 代码文本阅读器:Notepad++ 优点:简单,多能,优秀 虚拟机:VMware系列 优点:用户较多,系统稳定 linux:Ubuntu 优点:用户较多,系统稳定 ...
- Android文本阅读器,SD卡文本阅读
文本阅读器,区别于小说阅读器,不能读取大容量的文件.文件容量过大,就会导致读取的速度变得很慢. 读取一个文本文件需要使用BufferedReader + FileReader来逐行读取内容. 还需要准 ...
最新文章
- java8 lambda 表达式详解
- 要你命3000-List29
- 线性变化和非线性变化
- python如何提交作业_玛雅截稿作业提交python命令
- autolisp 列表 resbuf
- 转载-glance的用法
- android studio 修改文件后出现类型转换错误
- Android用户界面 UI组件--TextView及其子类(二) Button,selector选择器,sharp属性
- C语言 用传统流程图表示分段函数,C语言程序设计习题答案
- poj 2773(容斥原理)
- 暑假前挑战赛1—— A,B题解
- 神经网络——单层感知器
- Highmaps 经纬度转换为svg图上坐标
- 微信小程序退出按钮退出方式
- Vue中获取当前点击元素的父元素、子元素、兄弟元素
- 在ISE下分析约束时序
- 四川大学计算机学院赵怡,【喜讯】我校计算机学院学子在蓝桥杯大赛全国总决赛中再获佳绩...
- 打造智慧工地,低代码平台助力基建行业全链路数字化升级
- 企业管理的智能化趋势
- playhome的php文件怎么导入,PlayHome导入XNALaraXPS模型教程 PlayHome工作室教程