下面来个比较大的实例,通过它的学习,可以快速掌握各种控件的联合使用,先来效果图:

主要代码如下:

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#界面设计之文本阅读器的设计相关推荐

  1. 文本朗读器的设计与制作

    文本朗读器的设计与制作 2010年07月29日 文本朗读器的设计与制作 声音是携带信息的极其重要的媒体,是多媒体技术研究的一个重要的内容.而声音又包括人的话音.乐器声.动物发出的声音.及其产生的声音以 ...

  2. J2ME平台下文本阅读器的实现

    J2ME平台下文本阅读器的实现 J2ME平台下文本阅读器的实现 摘要:本文利用J2ME技术开发了一个文本阅读器,实现了手机对文本文件的显示,给出了该程序的实现代码,并对其关键技术进行了详细阐述. 关键 ...

  3. 文本阅读器(txt reader) v0.3.1 linux bt

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  4. 开博记念及附上第一个android工程:Txt文本阅读器

    开博记念 因工作需要学习安卓,对于安卓又完全是从零开始,故在这里记下学习总结,以记录学习工作中遇到的问题和解决办法.  由于有C++和C#基础,博主先是花了三天时间过了下JAVA的基本语法,然后就开始 ...

  5. 基于Android的本地电子书阅读器的设计与实现Ebook(1)

    基于Android的本地电子书阅读器的设计与实现Ebook(1) 学习Android时间不久,试着做了一个本地电子书阅读器APP,因为知识浅薄并不能像其他大佬一样实现各种繁杂的功能,但可以实现基本的阅 ...

  6. 双语web阅读器+书城设计与实现

    背景: 前段日子心血来潮,突然想做个小说阅读器,带翻译功能的. 原因大概来之已久了,主要是我本人是一个超级大书虫,特别喜欢看网络小说.经典小说.名著.心理学等"有意思"的书. 从接 ...

  7. 计算机,编码,文本阅读器 一

    计算机的发明改变了世界,也改变了图书行业.书籍的买卖被下载取而代之.几百万字的文字被存取到几MB的文本文件中.一个小小的32GB的U盘,可以存放一个小型图书馆的书籍.当人们闲暇之时,掏出手机,打开电脑 ...

  8. 代码文本阅读器,虚拟机,linux

    软件挑选原则:稳定,用户多,开源为佳 代码文本阅读器:Notepad++ 优点:简单,多能,优秀 虚拟机:VMware系列 优点:用户较多,系统稳定 linux:Ubuntu 优点:用户较多,系统稳定 ...

  9. Android文本阅读器,SD卡文本阅读

    文本阅读器,区别于小说阅读器,不能读取大容量的文件.文件容量过大,就会导致读取的速度变得很慢. 读取一个文本文件需要使用BufferedReader + FileReader来逐行读取内容. 还需要准 ...

最新文章

  1. java8 lambda 表达式详解
  2. 要你命3000-List29
  3. 线性变化和非线性变化
  4. python如何提交作业_玛雅截稿作业提交python命令
  5. autolisp 列表 resbuf
  6. 转载-glance的用法
  7. android studio 修改文件后出现类型转换错误
  8. Android用户界面 UI组件--TextView及其子类(二) Button,selector选择器,sharp属性
  9. C语言 用传统流程图表示分段函数,C语言程序设计习题答案
  10. poj 2773(容斥原理)
  11. 暑假前挑战赛1—— A,B题解
  12. 神经网络——单层感知器
  13. Highmaps 经纬度转换为svg图上坐标
  14. 微信小程序退出按钮退出方式
  15. Vue中获取当前点击元素的父元素、子元素、兄弟元素
  16. 在ISE下分析约束时序
  17. 四川大学计算机学院赵怡,【喜讯】我校计算机学院学子在蓝桥杯大赛全国总决赛中再获佳绩...
  18. 打造智慧工地,低代码平台助力基建行业全链路数字化升级
  19. 企业管理的智能化趋势
  20. playhome的php文件怎么导入,PlayHome导入XNALaraXPS模型教程 PlayHome工作室教程

热门文章

  1. .so文件导致的算法运行失败
  2. 纽曼 p9 平板电脑root 方法
  3. 2012最新超全个性签名,走过路过不要错过哦!
  4. rust中文补丁steam_steam腐蚀中文设置
  5. php爬取百度相关关键词,PHP获取百度关键词排行接口源码
  6. BroadLink智能遥控器
  7. 台湾本地支付GASH钱包及点卡详细介绍
  8. kotlin-stdlib_使用Kotlin stdlib使您的生活更轻松
  9. 如何免费XPS转PDF
  10. docker 搭建在线office--onlyoffice (二)