求一个C#实现写字板

如题所述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace NotepadDemo
{
public partial class Form1 : Form
{
/// <summary>
/// 首先定bai义一个表示文件是否被保存的变量du
/// </summary>
private bool saved = false;
/// <summary>
/// 用于保存打开文件路zhi径的变量
/// </summary>
private string fileName = string.Empty;
/// <summary>
/// 判断文件是否被修改的dao变量
/// </summary>
private bool modified = false;
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 新建菜单项事件处理部分
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
//如果没有输入任何内容则不处理
if (textBox1.Text == string.Empty)
{
return;
}
//否则判断文件是否已保存
else if (!saved)
{
//提示用户文件还没有保存
DialogResult dr = MessageBox.Show("文件已改变,是否保存?", "记事本", MessageBoxButtons.YesNoCancel);
//判断用户的输入
if (dr == DialogResult.Cancel)
{
//取消时直接返回
return;
}
else if (dr == DialogResult.No)
{
//选择否时清空记事本
textBox1.Text = string.Empty;
}
//否则进行保存操作
else
{
//定义一个保存文件对话框
SaveFileDialog sfd = new SaveFileDialog();
//开启检查路径
sfd.CheckPathExists = true;
//设置保存后缀名
sfd.DefaultExt = "txt";
sfd.Filter = "文本文件|*.txt";
//判断用户在保存文件对话框中的输入
DialogResult drSave = sfd.ShowDialog();
//选择保存时,创建相应的文件
if (drSave == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(sfd.FileName);
sw.WriteLine(textBox1.Text);
sw.Close();
textBox1.Text = string.Empty;
}
}
}
}
/// <summary>
/// 打开菜单项事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
//如果没有输入则直接执行打开操作
if (textBox1.Text == string.Empty)
{
//打开文件
OpenText();
}
//否则判断文件是否已保存
else if (!saved)
{
//提示用户文件还没有保存
DialogResult dr = MessageBox.Show("文件已改变,是否保存?", "记事本", MessageBoxButtons.YesNoCancel);
//判断用户的输入
if (dr == DialogResult.Cancel)
{
//取消时直接返回
return;
}
else if (dr == DialogResult.No)
{
//不保存时执行打开操作
OpenText();
}
//否则进行保存操作
else
{
//定义一个保存文件对话框
SaveFileDialog sfd = new SaveFileDialog();
//开启检查路径
sfd.CheckPathExists = true;
//设置保存后缀名
sfd.DefaultExt = "txt";
sfd.Filter = "文本文件|*.txt";
//判断用户在保存文件对话框中的输入
DialogResult drSave = sfd.ShowDialog();
//选择保存时,创建相应的文件
if (drSave == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(sfd.FileName);
sw.WriteLine(textBox1.Text);
sw.Close();
//保存完毕后执行打开操作
OpenText();
}
}
}
}
/// <summary>
/// 负责打开文件
/// </summary>
private void OpenText()
{
//创建一个打开文件对话框
OpenFileDialog ofd = new OpenFileDialog();
ofd.CheckFileExists = true;
ofd.CheckPathExists = true;
//设定打开文件的类型
ofd.Filter = "文本文件(*.txt)|*.txt";
//如果确认打开时在进行操作
if (ofd.ShowDialog() == DialogResult.OK)
{
//打开所选的文件
StreamReader sr = new StreamReader(ofd.FileName);
textBox1.Text = sr.ReadToEnd();
sr.Close();
fileName = ofd.FileName;
}
}
/// <summary>
/// 保存事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
//判断是否被修改
if (modified)
{
//判断是否被保存
if (!saved)
{
//如果有文件路径则直接保存
if (fileName != string.Empty)
{
//将文件写入
StreamWriter sw = new StreamWriter(fileName);
sw.WriteLine(textBox1.Text);
sw.Close();
//设置为已保存
saved = true;
}
else
{
//创建保存文件对话框
SaveFileDialog sfd = new SaveFileDialog();
sfd.CheckFileExists = true;
sfd.CheckPathExists = true;
//文件类型
sfd.Filter = "文本文件(*.txt)|*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
//保存所选的文件
StreamWriter sw = new StreamWriter(sfd.FileName);
sw.WriteLine(textBox1.Text);
sw.Close();
//设置文件路径
fileName = sfd.FileName;
//设置为已保存
saved = true;
modified = false;
}
}
}
}
}
/// <summary>
/// 按键处理事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//设置已修改,未保存
modified = true;
saved = false;
}
/// <summary>
/// 另存为事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
{
//创建保存文件对话框
SaveFileDialog sfd = new SaveFileDialog();
sfd.CheckFileExists = true;
sfd.CheckPathExists = true;
//文件类型
sfd.Filter = "文本文件(*.txt)|*.txt";
if (sfd.ShowDialog() == DialogResult.OK)
{
//保存所选的文件
StreamWriter sw = new StreamWriter(sfd.FileName);
sw.WriteLine(textBox1.Text);
sw.Close();
//设置文件路径
fileName = sfd.FileName;
//设置为已保存
saved = true;
modified = false;
}
}
/// <summary>
/// 定义打印文档
/// </summary>
private PrintDocument printDocument = new PrintDocument();
/// <summary>
/// 页面设置事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 页面设置ToolStripMenuItem_Click(object sender, EventArgs e)
{
//页面设置对话框
PageSetupDialog psd = new PageSetupDialog();
//定义所设置的文档
psd.Document = printDocument;
//页面设置
psd.PageSettings = new PageSettings();
//打印机设置
psd.PrinterSettings = new PrinterSettings();
//不显示网络打印机
psd.ShowNetwork = false;
//显示对话框
DialogResult dr = psd.ShowDialog();
//确认时设置打印文档
if (dr == DialogResult.OK)
{
printDocument.PrinterSettings = psd.PrinterSettings;
printDocument.DefaultPageSettings = psd.PageSettings;
}
}
/// <summary>
/// 退出事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
//先保存
保存ToolStripMenuItem_Click(sender, e);
//关闭程序
Close();
}
/// <summary>
/// 定义打印文本变量
/// </summary>
private string text = string.Empty;
/// <summary>
/// 打印事件处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 打印ToolStripMenuItem_Click(object sender, EventArgs e)
{
//关联打印预处理代码
printDocument.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);
//关联打印代码
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
//定义打印对话框
PrintDialog printDialog = new PrintDialog();
//获得用户输入
DialogResult dr = printDialog.ShowDialog();
//如果确认则打印
if (dr == DialogResult.OK)
{
printDocument.Print();
}
else
{
return;
}
}
/// <summary>
/// 打印前预处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void printDocument_BeginPrint(object sender, PrintEventArgs e)
{
//设置打印文本
text = textBox1.Text ;
}
/// <summary>
/// 打印文档处理代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 复制ToolStripMenuItem_Click(object sender, EventArgs e)
{
//复制操作
textBox1.Copy();
}
/// <summary>
/// 删除事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
//将选中的文本删除
textBox1.Text = textBox1.Text.Remove(textBox1.SelectionStart, textBox1.SelectionLength);
}
/// <summary>
/// 查找事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 查找ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmReplace findform = new frmReplace();
findform.Show(this);
}
/// <summary>
///
/// </summary>
public TextBox TextBox1
{
get
{
return textBox1;
}
set
{
textBox1 = value;
}
}
/// <summary>
/// 全选事件代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.SelectAll();
}
/// <summary>
/// 时间日期代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 时间日期ToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text.Insert(textBox1.Text.Length, System.DateTime.Now.ToString());
}
/// <summary>
/// 关于事件代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("记事本示例");
}
/// <summary>
/// 替换事件代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 替换ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmReplace replaceform = new frmReplace();
replaceform.Show(this);
}
/// <summary>
/// 转到事件代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 转到ToolStripMenuItem_Click(object sender, EventArgs e)
{
frmGoto gotoform = new frmGoto();
gotoform.Show(this);
}
/// <summary>
/// 自动换行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
{
自动换行ToolStripMenuItem.Checked = !自动换行ToolStripMenuItem.Checked;
textBox1.WordWrap = 自动换行ToolStripMenuItem.Checked;
}
/// <summary>
/// 字体设置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
FontDialog fd = new FontDialog();
DialogResult dr = fd.ShowDialog();
if (dr == DialogResult.OK)
{
textBox1.Font = fd.Font;
}
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-21
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 简易写字板 : Form
{

public 简易写字板()
{
InitializeComponent();
}

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "";

openFileDialog1.Filter = "文本文件(*.txt)|*.txt";
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader st = new StreamReader(openFileDialog1.FileName, Encoding.GetEncoding("utf-8"));
string str = st.ReadLine();
while (str != null)
{
richTextBox1.AppendText(str);
richTextBox1.AppendText("\n");
str = st.ReadLine();
}
}
}

private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";

this.Text=saveFileDialog1.FileName;
}

private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.FileName = "";
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";

saveFileDialog1.InitialDirectory = "";
saveFileDialog1.Title = "另存为";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter wt = new StreamWriter(saveFileDialog1.FileName);
wt.Write(richTextBox1.Text);
wt.Close();
}
this.Text = saveFileDialog1.FileName;
}

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
//richboxTextHasChanged = true;
}

private void 简易记事本_Load(object sender, EventArgs e)
{
//label1.Text = DateTime.Now.ToLongTimeString().ToString();

}

private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Cut();
}

private void 复制CToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Copy();
}

private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
}

private void 全选AToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectAll();
}

private void 时间日期DToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.AppendText("\r\n"+System.DateTime.Now.ToString());
}

private void 自动换行WToolStripMenuItem_Click(object sender, EventArgs e)
{
//自动换行
if (this.自动换行WToolStripMenuItem.Checked)
{
richTextBox1.WordWrap = true;
}
else
{
richTextBox1.WordWrap = false;
}
}

private void 字体ToolStripMenuItem_Click(object sender, EventArgs e)
{
FontDialog fd = new FontDialog();
fd.ShowDialog();
richTextBox1.Font = fd.Font;
}

private int GetStringLen(string s)
{
if (!string.IsNullOrEmpty(s))
{
int len = s.Length;
for (int i = 0; i < s.Length; i++)
{
if (s[i] > 255)
len++;
}
return len;
}
return 0;
}

private void 状态栏ToolStripMenuItem_Click(object sender, EventArgs e)
{
int row = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart) + 1;
int start = richTextBox1.GetFirstCharIndexOfCurrentLine();
string s = richTextBox1.Text.Substring(start, richTextBox1.SelectionStart - start);
int col = GetStringLen(s) + 1;
label2.Text = "第 " + row + " 行, 第 " + col + " 列";
}

private void 查看帮助HToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("https://answers.microsoft.com/en-us/windows/forum/apps_windows_10");

}

private void 关于记事本AToolStripMenuItem_Click(object sender, EventArgs e)
{
AboutBox about = new AboutBox();
about.ShowDialog();
}

private void 撤销RToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Undo();
}

private void 左对齐ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
}

private void 居中ToolStripMenuItem_Click(object sender, EventArgs e)
{

richTextBox1.SelectionAlignment = HorizontalAlignment.Center;

}

private void 右对齐ToolStripMenuItem_Click(object sender, EventArgs e)
{
{
richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
}

}

private void 字体颜色CToolStripMenuItem_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.SelectionColor = colorDialog1.Color;

}

private void 背景BToolStripMenuItem_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
richTextBox1.BackColor = colorDialog1.Color;
}
}
}
第2个回答  2021-01-13
创建一个窗体应用的项目,
用文本框控件
和显示文字的控件
给文本框注册内容改变触发的事件
在事件里面写
显示文件对象的text=文本框对象的text ;就可以了本回答被网友采纳