winform实例(1)-简单记事本
前言:利用这段时间学习C#的时间,简单做了一些winform窗体。
首先,先来一张效果图。
所需控件:
1.两个button控件------实现打开和保存功能。
2.对应的“对话框”--openFileDialog和SaveFileDialog控件。
3.一个textbox控件,为文本内容。
3.一个timer控件提示时间。
4.一个label控件,提示信息。
代码实现:
打开功能:
1 private void btn_open_Click(object sender, EventArgs e) 2 { 3 if (openFileDialog1.ShowDialog()==DialogResult.OK) 4 { 5 FileName = openFileDialog1.FileName; 6 7 try 8 { 9 OriginalContent = File.ReadAllText(FileName); 10 textBox1.Text = OriginalContent; 11 } 12 catch 13 { 14 15 lbl_notice.Text = "文件无法打开!"; 16 } 17 } 18 }
保存功能:
写了一个方法,便于直接保存和关闭保存。
1 private void save() 2 { 3 //当内容已改变时,此标记为True 4 bool ShouldSvae = false; 5 //如果文件名不为空,表明当前时文本框中的内容是来自于文件 6 if (FileName!="") 7 { 8 //如果内容改变 9 if (textBox1.Text!=OriginalContent&&MessageBox.Show("文件已修改,是否保存?" , "保存文件" , MessageBoxButtons.YesNo)==DialogResult.Yes) 10 { 11 ShouldSvae = true; 12 } 13 } 14 else 15 { 16 //如果用户输入了内容,并制定了一个文件名 17 if (textBox1.Text!=""&&saveFileDialog1.ShowDialog()==DialogResult.OK) 18 { 19 FileName = saveFileDialog1.FileName; 20 ShouldSvae = true; 21 } 22 } 23 if (ShouldSvae) 24 { 25 try 26 { 27 File.WriteAllText(FileName, textBox1.Text); 28 OriginalContent = textBox1.Text; 29 lbl_notice.Text = "文件已保存"; 30 } 31 catch (Exception) 32 { 33 lbl_notice.Text = "文件保存失败!!"; 34 throw; 35 } 36 } 37 }
关闭窗口保存:
用了窗体的FormClosing事件。
1 //窗口关闭时保存文件 2 private void Form1_FormClosing(object sender, FormClosingEventArgs e) 3 { 4 save(); 5 }
textbox控件的细节:
(1)设置多行:multiline属性;
(2)侧拉框:Scrollbars属性;
Timer控件:
1 private void timer1_Tick(object sender, EventArgs e) 2 { 3 lblTimer.Text = DateTime.Now.ToString(); 4 }
窗口标题:
让窗口标题显示文件的名字。
1 //窗体初始值 2 private void Form1_Load(object sender, EventArgs e) 3 { 4 lblTimer.Text = ""; 5 lbl_notice.Text = ""; 6 Text = "无标题-我的记事本"; 7 8 } 9 //窗体标题显示文件名 10 private string OriginalContent; 11 12 private string _FileName = ""; 13 14 public string FileName 15 { 16 get { return _FileName; } 17 18 set 19 { 20 //更新窗体标题 21 _FileName = value; 22 //path用System.IO引用 23 Text = Path.GetFileName(value) + "-我的记事本"; 24 25 } 26 }
全部代码:
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.IO; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace Notepad 13 { 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 20 } 21 22 23 private void timer1_Tick(object sender, EventArgs e) 24 { 25 lblTimer.Text = DateTime.Now.ToString(); 26 } 27 28 //窗体初始值 29 private void Form1_Load(object sender, EventArgs e) 30 { 31 lblTimer.Text = ""; 32 lbl_notice.Text = ""; 33 Text = "无标题-我的记事本"; 34 35 } 36 //窗体标题显示文件名 37 private string OriginalContent; 38 39 private string _FileName = ""; 40 41 public string FileName 42 { 43 get { return _FileName; } 44 45 set 46 { 47 //更新窗体标题 48 _FileName = value; 49 //path用System.IO引用 50 Text = Path.GetFileName(value) + "-我的记事本"; 51 52 } 53 } 54 55 private void btn_open_Click(object sender, EventArgs e) 56 { 57 if (openFileDialog1.ShowDialog()==DialogResult.OK) 58 { 59 FileName = openFileDialog1.FileName; 60 61 try 62 { 63 OriginalContent = File.ReadAllText(FileName); 64 textBox1.Text = OriginalContent; 65 } 66 catch 67 { 68 69 lbl_notice.Text = "文件无法打开!"; 70 } 71 } 72 } 73 74 private void btn_save_Click(object sender, EventArgs e) 75 { 76 save(); 77 } 78 79 private void save() 80 { 81 //当内容已改变时,此标记为True 82 bool ShouldSvae = false; 83 //如果文件名不为空,表明当前时文本框中的内容是来自于文件 84 if (FileName!="") 85 { 86 //如果内容改变 87 if (textBox1.Text!=OriginalContent&&MessageBox.Show("文件已修改,是否保存?" , "保存文件" , MessageBoxButtons.YesNo)==DialogResult.Yes) 88 { 89 ShouldSvae = true; 90 } 91 } 92 else 93 { 94 //如果用户输入了内容,并制定了一个文件名 95 if (textBox1.Text!=""&&saveFileDialog1.ShowDialog()==DialogResult.OK) 96 { 97 FileName = saveFileDialog1.FileName; 98 ShouldSvae = true; 99 } 100 } 101 if (ShouldSvae) 102 { 103 try 104 { 105 File.WriteAllText(FileName, textBox1.Text); 106 OriginalContent = textBox1.Text; 107 lbl_notice.Text = "文件已保存"; 108 } 109 catch (Exception) 110 { 111 lbl_notice.Text = "文件保存失败!!"; 112 throw; 113 } 114 } 115 } 116 //窗口关闭时保存文件 117 private void Form1_FormClosing(object sender, FormClosingEventArgs e) 118 { 119 save(); 120 } 121 122 } 123 }
最后:
通过winform实例的练习,发现可以自定义自己想要的功能了。
要做就做到极致 -----智博这样说。