文本编辑器实例

简介:
1 using  System;
  2 using  System.Collections.Generic;
  3 using  System.ComponentModel;
  4 using  System.Data;
  5 using  System.Drawing;
  6 using  System.Text;
  7 using  System.Windows.Forms;
  8 using  System.IO;
  9 using  System.Drawing.Printing;
 10
 11 namespace  WindowsApplication1
 12 {
 13    public partial class TextEditor : Form
 14    {
 15        private string filename;
 16        public TextEditor(WindowsApplication1.Main parent)
 17        {
 18            this.MdiParent = parent;
 19            InitializeComponent();
 20        }

 21
 22        private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
 23        {
 24
 25           if (MessageBox.Show("你确定要退出么?""退出", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)==DialogResult.Yes )
 26               this.Close();
 27
 28
 29}

 30        
 31        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
 32        {
 33           
 34             openFileDialog1.Title = "打开";
 35            //openFileDialog1.InitialDirectory=@"d:\program files"; //初始目录,注意不要使用硬编码的目录字符串,可能该目录不存在
 36            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //打开系统定义的目录
 37
 38            openFileDialog1.Filter = "文本文件 (*.txt)|*.txt|VB程序文件 (*.vb)|*.vb |所有文件 (*.*)|*.*|C#类型文件 (*.cs;*.cd)|*.cs;*.cd";
 39            openFileDialog1.FilterIndex = 3//默认选择过滤类型 从1开始
 40
 41            if (openFileDialog1.ShowDialog() == DialogResult.OK)
 42            {
 43                filename=openFileDialog1.FileName;
 44                //    listBox1.Items.Add(openFileDialog1.FileName);
 45                //foreach (string fl in openFileDialog1.FileNames)
 46                //{
 47                //    listBox1.Items.Add(fl);
 48                //}
 49
 50                OpenFile();
 51
 52                GetFileName();
 53                
 54            }

 55        }

 56
 57        private void OpenFile()
 58        {
 59            try
 60            {
 61                
 62                textBox1.Clear();
 63                textBox1.Text = File.ReadAllText(filename, Encoding.Default);
 64                //textBox1.Text = File.ReadAllText(filename);
 65                //StringBuilder strb = new StringBuilder();
 66
 67                //using (StreamReader sr = new StreamReader(filename))
 68                //{
 69                //    while (sr.Peek() >= 0)
 70                //    {
 71                //        //Console.WriteLine(sr.ReadLine());
 72                //        strb.Append(sr.ReadLine() );
 73                //    }
 74                //}
 75                //textBox1.Text = strb.ToString();
 76            }

 77            catch (IOException ex)
 78            {
 79                MessageBox.Show(ex.Message, "TextEditor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
 80            }

 81           
 82        }

 83
 84        private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
 85        {
 86            if (!(filename == null))
 87                SaveFile();
 88            else
 89            {
 90
 91                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
 92                {
 93                    filename = saveFileDialog1.FileName;
 94                    SaveFile();
 95                }

 96            }

 97        }

 98
 99        private void SaveFile()
100        {
101             try
102            {
103                File.WriteAllText(filename, textBox1.Text);
104            }

105            catch (IOException ex)
106            {
107                MessageBox.Show(ex.Message, "TextEditor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
108            }

109        }

110
111        private void TextEditor_Load(object sender, EventArgs e)
112        {
113            //textBox1.Clear();
114            //filename = "未命名.txt";
115        }

116
117        private void toolStripMenuItem1_Click(object sender, EventArgs e)
118        {
119            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
120            {
121                filename = saveFileDialog1.FileName;
122                SaveFile();
123            }

124        }

125
126        private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
127        {
128           
129                    textBox1.Clear();
130                    filename = null;
131                    this.Text = "TextEditor";
132               
133        }

134
135        private void GetFileName()
136        {
137            FileInfo fi = new FileInfo(filename);
138            this.Text = fi.Name + " -TextEditor";
139        }

140
141        private string[] lines;
142        private int linesPrinted;
143
144        private void OnPrintPage(object sender, PrintPageEventArgs e)
145        {
146            int x = e.MarginBounds.Left ;
147            int y = e.MarginBounds.Top ;
148
149            while (linesPrinted < lines.Length)
150            {
151                e.Graphics.DrawString(lines[linesPrinted++], new Font("Arial"10), Brushes.Black, x, y);
152                y += 15;
153                if (y >= e.PageBounds.Bottom )
154                {
155                    e.HasMorePages = true;
156                    return;
157                }

158            }

159
160            linesPrinted = 0;
161            e.HasMorePages = false;
162        }

163
164     
165
166        private void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
167        {
168            try
169            {
170                if (printDialog1.ShowDialog() == DialogResult.OK)
171                {
172                    printDocument1.Print();
173                }

174            }

175            catch (InvalidPrinterException ex)
176            {
177                MessageBox.Show(ex.Message, "Text Editor", MessageBoxButtons.OK, MessageBoxIcon.Error);
178            }

179
180        }

181
182        private void OnBeginPrint(object sender, PrintEventArgs e)
183        {
184            char[] param ='\n' };
185            lines = textBox1.Text.Split(param);
186            int i = 0;
187            char[] trimParam ='\r' };
188            foreach (string s in lines)
189            {
190                lines[i++= s.TrimEnd(trimParam);
191            }

192        }

193
194        private void OnEndPrint(object sender, PrintEventArgs e)
195        {
196            lines = null;
197        }

198
199        private void 页面设置UToolStripMenuItem_Click(object sender, EventArgs e)
200        {
201            pageSetupDialog1.ShowDialog();
202        }

203
204        private void 打印预览ToolStripMenuItem_Click(object sender, EventArgs e)
205        {
206            printPreviewDialog1.ShowDialog();
207           
208        }

209       
210    }

211}
本文转自tiasys博客园博客,原文链接:http://www.cnblogs.com/tiasys/archive/2006/12/27/605236.html,如需转载请自行联系原作者
相关文章
|
Oracle 安全 关系型数据库
实例 centos8 系统通过 snaps 安装markdown编辑器 typora
CentOS8 系统 安装markdown 编辑器 typora
608 0
NotePad++或其他编辑器正则批量替换实例
NotePad++或其他编辑器正则批量替换实例
245 0
|
前端开发 容器
GEF入门实例_总结_06_为编辑器添加内容
一、前言 本文承接上一节:GEF入门实例_总结_05_显示一个空白编辑器 在上一节我们为我们的插件添加了一个空白的编辑器,这一节我们将为此编辑器添加内容。   二、GEF的MVC模式 在此只简单总结一下,后面会详细介绍。
1442 0
GEF入门实例_总结_05_显示一个空白编辑器
一、前言 本文承接上一节:GEF入门实例_总结_04_Eclipse插件启动流程分析 在第三节( GEF入门实例_总结_03_显示菜单和工具栏  ),我们创建了菜单和工具栏。 这一节,我们来实现:点击菜单后,打开一个编辑器。
1492 0
|
定位技术 索引
【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
(转载请注明出处:http://blog.csdn.net/buptgshengod)    我们知道cocos2d是一个基于2d效果的游戏引擎,那么如果制作一个2d手机游戏我们需要创建相应的游戏画面,而cocos2d支持的游戏画面就是通过Tiled来制作的。这是一款通过通过像素来拼凑画面的软件,界面如下图所示 下面讲一下安装以及使用。 第一步:下载Tiled,地址:www.ma
1331 0
|
Web App开发 XML API
超强文本编辑器SciTE配置方法详细实例
关于scite文本编辑器的说明 scite,也就是SCIntilla based Text Editor, 基于SCIntilla编辑组件的文本编辑器。我们见到的许多文本编辑器都是基于SCIntilla编辑组件的。
1756 0
|
4月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
5月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
59 5