基本信息
源码名称:C#记事本程序源码下载(仿office菜单栏)
源码大小:5.03M
文件格式:.rar
开发语言:C#
更新时间:2016-11-07
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
C#记事本程序
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Text;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace Notepad
{
public partial class MainForm : DevComponents.DotNetBar.Office2007RibbonForm
{
//定义文件操作类
private string fileURL = "";
private bool change;
private string Filter = "文本文件(*.txt)|*.txt";
private Font font;
private FileInfo fileInfo;
private string[] fontStyle = new string[4] {"","","",""};
private Color color;
public MainForm()
{
InitializeComponent();
}
//加载处理
private void MainForm_Load(object sender, EventArgs e)
{
LineColAndSum();
this.richTextBox1.AllowDrop = true;
this.richTextBox1.DragEnter = new DragEventHandler(RichTextBox1_DragEnter);
//this.richTextBox1.DragDrop = new DragEventHandler(RichTextBox1_DragDrop);
font = richTextBox1.Font;
color = richTextBox1.ForeColor;
boldButton.Checked = false;
ltalicButton.Checked = false;
unLineButton.Checked = false;
stLineButton.Checked = false;
fontLeftButton_Click(sender, e);
ControlChanged();
fontRightButton.Image.RotateFlip(RotateFlipType.Rotate180FlipY);
GetFontNames();
GetFontSize();
showFile_Message();
change = false;
}
//获取系统字体和样式
private void GetFontNames()
{
FontFamily[] fontFamilies;
fontNames.Items.Clear();
InstalledFontCollection installedFontCollection = new InstalledFontCollection();
fontFamilies = installedFontCollection.Families;
int count = fontFamilies.Length;
for (int j = 0; j < count; j)
{
fontNames.Items.Add(fontFamilies[j].Name);
}
fontNames.SelectedItem = richTextBox1.Font.Name;
}
//字号初始化
private void GetFontSize()
{
for (float i = 8; i < 48; i )
{
fontSize.Items.Add(i);
}
fontSize.SelectedItem = richTextBox1.Font.Size;
}
//文本框格式的显示
private void showFont()
{
float size = float .Parse((font.Size * this.sliderItem1.Value / 100).ToString());
this.richTextBox1.Font = new Font(font.Name, size,font.Style);
this.richTextBox1.ForeColor = color;
}
//统计字数和行列定位
private void LineColAndSum()
{
int index = richTextBox1.GetFirstCharIndexOfCurrentLine();//得到当前行第一个字符的索引
int line = richTextBox1.GetLineFromCharIndex(index) 1;//得到当前行的行号,从0开始,习惯是从1开始,所以 1.
int col = richTextBox1.SelectionStart - index 1;//.SelectionStart得到光标所在位置的索引 减去 当前行第一个字符的索引 = 光标所在的列数(从0开始)
int sum = richTextBox1.Text.Length;
labelItemLnCh.Text = "行:" line "列:" col "总字数:" sum;
}
//控件检测
private void ControlChanged()
{
//backButton检测
if (richTextBox1.CanUndo)
backButton.Enabled = true;
else
backButton.Enabled = false;
//redoButton检测
if (richTextBox1.CanRedo)
redoButton.Enabled = true;
else
redoButton.Enabled = false;
}
//文本发生变化
private void TextChanged(object sender, EventArgs e)
{
change = true;
LineColAndSum();
ControlChanged();
}
//菜单的展开与收缩
private void switchButtonItem1_ValueChanged(object sender, EventArgs e)
{
if (switchButtonItem1.Value == true)
this.ribbonControl1.Expanded = false;
else
this.ribbonControl1.Expanded = true;
}
//打开文件
private void openFile_Click(object sender, EventArgs e)
{
string mess = closeFile(sender,e);
if(mess.Equals("Cancel"))
return;
try
{
OpenFileDialog open = new OpenFileDialog();
open.Title = "打开文本文件";
open.AddExtension = true;
open.CheckFileExists = true;
open.CheckPathExists = true;
open.Filter = this.Filter;
if (open.ShowDialog() == DialogResult.OK)
{
// this.Text = open.SafeFileName "-记事本";
fileURL = open.FileName;
fileInfo = new FileInfo(fileURL);
StreamReader Sr = new StreamReader(fileURL, System.Text.Encoding.Default);
this.richTextBox1.Text = Sr.ReadToEnd();
MainForm_Load(sender, e);
Sr.Close();
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
}
//显示文件的信息
private void showFile_Message()
{
if (fileInfo!=null)
{
lablelFileName.Text = fileInfo.Name;
labelFileSize.Text = (fileInfo.Length) " 字节";
labelFileDate.Text = fileInfo.CreationTimeUtc.ToString();
}
else
{
lablelFileName.Text = "未命名";
labelFileSize.Text = "0 字节";
labelFileDate.Text = "未创建文件";
}
}
//字体放大或缩小
private void sliderItem1_ValueChanged(object sender, EventArgs e)
{
if (sliderItem1.Value < 100)
{
sliderItem1.Minimum = 25;
sliderItem1.Maximum = 175;
sliderItem1.Step = 3;
if (sliderItem1.Value==99||sliderItem1.Value==80)
sliderItem1.Value = 97;
}
else if (sliderItem1.Value > 100)
{
sliderItem1.Minimum = -200;
sliderItem1.Maximum = 400;
sliderItem1.Step = 20;
if (sliderItem1.Value==101||sliderItem1.Value==103)
sliderItem1.Value = 120;
}
this.sliderItem1.Text = sliderItem1.Value.ToString() "%";
showFont();
}
//文件存储
private void saveFile()
{
try
{
FileStream Fs = File.Open(fileURL, FileMode.Create, FileAccess.Write);
StreamWriter Sw = new StreamWriter(Fs,Encoding.Default);
Sw.Write(richTextBox1.Text);
change = false;
Sw.Close();
Fs.Close();
fileInfo = new FileInfo(fileURL);
showFile_Message();
}
catch (Exception Ex)
{
MessageBox.Show(Ex.ToString(),"警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
//创建新文件
private void newFile_Click(object sender, EventArgs e)
{
string mess = closeFile(sender,e);
if(mess.Equals("Cancel"))
return;
else
{
fileURL = null;
fileInfo = null;
richTextBox1.Clear();
MainForm_Load(sender, e);
}
}
//另存为对话框
private void saveFileAsButton()
{
SaveFileDialog save = new SaveFileDialog();
save.Title = "另存为";
save.AddExtension = true;
save.AutoUpgradeEnabled = true;
save.Filter = this.Filter;
if (save.ShowDialog() == DialogResult.OK)
fileURL = save.FileName;
else
return;
}
//撤销按钮
private void backButton_Click(object sender, EventArgs e)
{
if (richTextBox1.CanUndo)
{
richTextBox1.Undo();
// fontNames.SelectedItem = richTextBox1.Font.Name;
// fontSize.SelectedItem = richTextBox1.Font.Size * 100 / sliderItem1.Value;
LineColAndSum();
ControlChanged();
}
else
return;
}
//撤销-撤销按钮
private void redoButton_Click(object sender, EventArgs e)
{
if (richTextBox1.CanRedo)
{
richTextBox1.Redo();
LineColAndSum();
ControlChanged();
}
else
return;
}
//光标位置的变化---鼠标
private void CursorChanged(object sender, EventArgs e)
{
LineColAndSum();
}
//光标位置的变化---键盘
private void richTextBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Up || e.KeyCode == Keys.Down)
LineColAndSum();
}
//粘贴
private void pasteButton_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
LineColAndSum();
}
//剪切
private void cutButton_Click(object sender, EventArgs e)
{
richTextBox1.Cut();
LineColAndSum();
}
//复制
private void copyButton_Click(object sender, EventArgs e)
{
richTextBox1.Copy();
}
//删除所选择的文字
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectedText = "";
}
//选中全部文字
private void 全选ToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.SelectAll();
}
//字体名称发生变化
private void fontNames_SelectedIndexChanged(object sender, EventArgs e)
{
string Name = fontNames.SelectedItem.ToString();
font = new Font(Name, font.Size);
showFont();
}
//字体字号发生变化
private void fontSize_SelectedIndexChanged(object sender, EventArgs e)
{
float size = float.Parse(fontSize.SelectedItem.ToString());
size = size*sliderItem1.Value/100;
font = new Font(font.Name, size);
showFont();
}
//字体样式统计
private void fontStyle_Changed()
{
font = new Font(font.Name, font.Size, FontStyle.Regular);
foreach (string i in fontStyle)
{
//string i = fontStyle[0];
if (i.Equals("bold"))
font = new Font(font.Name, font.Size, font.Style | FontStyle.Bold);
if(i.Equals("ltalic"))
font = new Font(font.Name, font.Size, font.Style | FontStyle.Italic);
if (i.Equals("underline"))
font = new Font(font.Name, font.Size, font.Style | FontStyle.Underline);
if(i.Equals("strikeout"))
font = new Font(font.Name, font.Size, font.Style | FontStyle.Strikeout);
}
showFont();
}
//字体粗体设置
private void boldButton_Click(object sender, EventArgs e)
{
if (boldButton.Checked == false)
{
boldButton.Checked = true;
fontStyle[0] = "bold";
}
else
{
boldButton.Checked = false;
fontStyle[0] = "";
}
fontStyle_Changed();
}
//倾斜字体设置
private void ltalicButton_Click(object sender, EventArgs e)
{
if (ltalicButton.Checked == false)
{
ltalicButton.Checked = true;
fontStyle[1] = "ltalic";
}
else
{
ltalicButton.Checked = false;
fontStyle[1] = "";
}
fontStyle_Changed();
}
//下划线字体设置
private void unLineButton_Click(object sender, EventArgs e)
{
if (unLineButton.Checked == false)
{
unLineButton.Checked = true;
fontStyle[2] = "underline";
}
else
{
unLineButton.Checked = false;
fontStyle[2] = "";
}
fontStyle_Changed();
}
//删除线设置
private void stLineButton_Click(object sender, EventArgs e)
{
if (stLineButton.Checked == false)
{
stLineButton.Checked = true;
fontStyle[3] = "strikeout";
}
else
{
stLineButton.Checked = false;
fontStyle[3] = "";
}
fontStyle_Changed();
}
//字体颜色发生变化
private void colorButton_SelectedColorChanged(object sender, EventArgs e)
{
color = colorButton.SelectedColor;
showFont();
}
//文本左对齐
private void fontLeftButton_Click(object sender, EventArgs e)
{
if (fontLeftButton.Checked == true)
return;
else
{
fontLeftButton.Checked = true;
fontRightButton.Checked = false;
fontCenterButton.Checked = false;
richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
}
}
//右对齐
private void fontRightButton_Click(object sender, EventArgs e)
{
if (fontRightButton.Checked == true)
return;
else
{
fontRightButton.Checked = true;
fontCenterButton.Checked = false;
fontLeftButton.Checked = false;
richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
}
}
//居中对齐
private void fontCenterButton_Click(object sender, EventArgs e)
{
if (fontCenterButton.Checked == true)
return;
else
{
fontLeftButton.Checked = false;
fontRightButton.Checked = false;
fontCenterButton.Checked = true;
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
}
}
//点击保存按钮
private void saveFileButton_Click(object sender, EventArgs e)
{
if (fileURL.Equals(""))
saveFileAsButton();
if (!fileURL.Equals(""))
saveFile();
else
return;
}
//点击另存为按钮
private void saveAsFileButton_Click(object sender, EventArgs e)
{
saveFileAsButton();
if (!fileURL.Equals(""))
saveFile();
else
return;
}
//当用户聚焦到textKey上时
private void textKey_GotFocus(object sender, EventArgs e)
{
if (textKey.Text.Equals(" 请输入关键字"))
textKey.Text = "";
else
return;
}
//当用户对textKey失去聚焦时
private void textKey_LostFocus(object sender, EventArgs e)
{
if (textKey.Text.Equals(""))
textKey.Text = " 请输入关键字";
else
return;
}
//查找关键字
private void findKey_Click(object sender, EventArgs e)
{
string key = textKey.Text;
if (richTextBox1.Find(key, richTextBox1.SelectionStart richTextBox1.SelectionLength, richTextBox1.TextLength, RichTextBoxFinds.None) < 0) // 为-1表示没有找到
{
richTextBox1.SelectionStart = 0; // 光标设置为0位置
richTextBox1.SelectionLength = 0;
}
richTextBox1.Focus();
}
//打印
private void buttonItem6_Click(object sender, EventArgs e)
{
MessageBox.Show("o(︶︿︶)o 唉~\n开发中...");
}
//关闭文档
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
string mess = closeFile(sender, e);
if (mess.Equals("Cancel"))
e.Cancel = true;
}
//点击退出按钮
private void exitbutton_Click(object sender, EventArgs e)
{
String mess = closeFile(sender, e);
if (mess.Equals("Cancel"))
Application.Exit();
}
//经典蓝
private void StyleBlue_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2007Blue;
}
//水晶银
private void StyleSilver_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2007Silver;
}
//酷炫黑
private void StyleBlack_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2007Black;
}
//VistaGlass
private void StyleVistaGlass_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2007VistaGlass;
}
//洁白银
private void StyleSilver1_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2010Silver;
}
//浅色蓝
private void StyleBlue1_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2010Blue;
}
//咖啡黑
private void StyleBlack1_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Office2010Black;
}
//Win7蓝
private void StyleBlue2_Click(object sender, EventArgs e)
{
styleManager1.ManagerStyle = DevComponents.DotNetBar.eStyle.Windows7Blue;
}
//拖入文件操作
private void RichTextBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
string mess = closeFile(sender, e);
if (mess.Equals("Cancel"))
return;
else
{
fileURL = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
fileInfo = new FileInfo(fileURL);
StreamReader Sr = new StreamReader(fileURL, System.Text.Encoding.Default);
this.richTextBox1.Text = Sr.ReadToEnd();
MainForm_Load(sender, e);
Sr.Close();
}
}
//关闭当前文件
private String closeFile(Object sender, EventArgs e)
{
if (change)
{
DialogResult DResut = MessageBox.Show("文件发生了改动,是否保存?", "信息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Information);
if (DResut == DialogResult.Yes)
{
saveFileButton_Click(sender, e);
return "Yes";
}
else if (DResut == DialogResult.No)
{
return "No";
}
else
return "Cancel";
}
else
return "No";
}
}
}