记事本
对话框控件:
不显示需要在双击菜单栏设置显示
ColorDialog :颜色对话框
FontDialog:字体对话框
FloderBrowserDialog:文件夹选择对话框
OpenFileDialog:打开对话框
SabeFileDialog:保存对话框
文件流
using System.IO;
打印控件:
PageSetupDialog:更改有页面相关的设置
PrintDialog:选择打印机并选择其他打印方式
PrintDocument:想打印机输出打印对象
PrintPreviewControl:只表示打印预览中显示正在预览的文档部分,不包含任何对话框和按钮
PrintPreviewDialog:向用户显示关联文档打印时的样子
Form1
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 WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); textBox1.ScrollBars = ScrollBars.Vertical; } private void 字体颜色ToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult dr = colorDialog1.ShowDialog();//点击字体颜色按钮显示颜色对话框并返回给DialogResult dr if (dr == DialogResult.OK)//如果用户字体颜色对话框的确定 { textBox1.ForeColor = colorDialog1.Color;//更改textBox1的字体颜色改变全部颜色不能改一部分 textBox1.BackColor = colorDialog1.Color;//更改背景颜色 } } private void 文件夹选择ToolStripMenuItem_Click(object sender, EventArgs e) { //现在底部弄一个 StatusStrip然后StatusLabel清空掉Text DialogResult dr = folderBrowserDialog1.ShowDialog(); //看不见任何一个文件,只能看见文件夹 if (dr == DialogResult.OK) { la1.Text = folderBrowserDialog1.SelectedPath;//在底部的StatusStrip中StatusLabel显示出选择的文件的绝对路径 } } private void 字体选择ToolStripMenuItem_Click(object sender, EventArgs e) { DialogResult dr = fontDialog1.ShowDialog(); if (dr == DialogResult.OK) { textBox1.Font = fontDialog1.Font; textBox1.ForeColor = fontDialog1.Color;//字体对话框中没有颜色需要先右键点击fontDialog1选择属性中的ShowColor点true需要不能用需要设置因为他是字体对话框里的颜色 } } private void 打开OToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Filter = "文本文件|*.txt";//Filter查看文件的格式只能看到txt的文件格式也只能选择txt文件 DialogResult dr = openFileDialog1.ShowDialog(); if (dr == DialogResult.OK) { string path = openFileDialog1.FileName;//获取绝对路径 StreamReader sr = new StreamReader(path, Encoding.Default);//这就话之前需要引用流using System.IO。Encoding.Default(获取当前操做系统默认的编码(系统用什么编码你用什么编码) )读取汉字 //创建流吧获取的绝对路径给sr。选定的流就会针对于你选择的路径 textBox1.Text = sr.ReadToEnd();//读取sr的路径从头读到尾然后将读到的内容返回到text.Box1中显示出来。只能读取英文读取汉字在 StreamReader sr = new StreamReader(path, Encoding.Default) } } bool hasave = false; string savepath = ""; private void 保存SToolStripMenuItem_Click(object sender, EventArgs e) { if (savepath == "") { saveFileDialog1.Filter = "文本文件|*.txt"; saveFileDialog1.FileName = "新建文本文档";//没保存默认标题 DialogResult dr = saveFileDialog1.ShowDialog(); if (dr == DialogResult.OK) { savepath = saveFileDialog1.FileName;//绝对路径 la1.Text = savepath; string[] sss = savepath.Split('\'); this.Text = sss[sss.Length - 1] + " - 超级记事本";//截取路径最后 StreamWriter sw = new StreamWriter(savepath);//StreamWriter输出 对他进行保存 sw.Write(textBox1.Text);//将text.Box1写道流里 sw.Close();//关掉流 hasave = true; } } else//没有记录直接写 { StreamWriter sw = new StreamWriter(savepath); sw.Write(textBox1.Text); sw.Close(); hasave = true;//保存完成 } } private void 新建NToolStripMenuItem_Click(object sender, EventArgs e) { if (hasave) { textBox1.Text = ""; savepath = ""; this.Text = "超级记事本"; } else { DialogResult dr = MessageBox.Show("当前文件未保存,新建将~~~~", "警告!", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) { textBox1.Text = ""; savepath = ""; this.Text = "超级记事本"; } } } private void textBox1_TextChanged(object sender, EventArgs e) { la2.Text = textBox1.Text.Length.ToString(); hasave = false;//保存好了后更改内容提示是否保存 } private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e) { //不自动换行显示滚动条 if (textBox1.WordWrap) { textBox1.WordWrap = false; 自动换行ToolStripMenuItem.Checked = false; textBox1.ScrollBars = ScrollBars.Both; } else { textBox1.WordWrap = true; 自动换行ToolStripMenuItem.Checked = true; textBox1.ScrollBars = ScrollBars.Vertical; } } private void 页面设置ToolStripMenuItem_Click(object sender, EventArgs e) { pageSetupDialog1.Document = printDocument1; pageSetupDialog1.ShowDialog(); } //下面必用打印对象 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Brush b = new SolidBrush(textBox1.ForeColor);//实线画刷(需要颜色对象来自于textBox1.ForeColor颜色) PointF p = new PointF(30,10);//距离x轴30y轴10 e.Graphics.DrawString(textBox1.Text, textBox1.Font, b, p);//绘制一些字符串(要绘制的东西,绘制成什么样,画刷,位置) } private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e) { //PrintPreviewControl1.Document = printDocument1; printPreviewDialog1.Document = printDocument1;//独立的 printPreviewDialog1.ShowDialog(); } private void 打印PToolStripMenuItem_Click(object sender, EventArgs e) { printDialog1.Document = printDocument1; DialogResult dr = printDialog1.ShowDialog();//接受一下返回值 if (dr == DialogResult.OK) { printDocument1.Print();//执行打印 } } private void 撤消UToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Undo();//撤销 } private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Cut();//剪贴 } private void 复制CToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Copy();//复制 } private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.Paste();//粘贴 } private void 全选AToolStripMenuItem_Click(object sender, EventArgs e) { textBox1.SelectAll();//全选 } private void 查找ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f2 = new Form2(this);//this传给Form2 f2.Owner = this;//拥有者form1拥有form2 f2.Show(); } } }
Form2查找的窗口
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 WindowsFormsApplication1 { public partial class Form2 : Form { Form1 F1;//提升作用域 public Form2(Form1 f1) { InitializeComponent(); F1 = f1; //将文本框的privat改成public } int a = -1;//加载一次使用 private void button1_Click(object sender, EventArgs e) { string s1 = textBox1.Text;//获取要查找的数据 string s2 = F1.textBox1.Text;//要查的地方 a = s2.IndexOf(s1, (a + s1.Length));//多少a开始往后找 if (a < 0) { MessageBox.Show("找不到"" + s1 + ""!!");// ""转义字符 } else { F1.textBox1.Select(a, s1.Length);//设置选定的内容(从哪个索引开始选,选中多长) F1.textBox1.Focus();//获得焦点 } } } }