zoukankan      html  css  js  c++  java
  • 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 }
    View Code

    最后:

    通过winform实例的练习,发现可以自定义自己想要的功能了。

  • 相关阅读:
    SAP GUI登陆 安全性提示  出现乱码
    获取sap登陆用户名的中文描述
    jQuery页面替换+php代码实现搜索后分页
    Linux下更新Git
    DirectoryInfo.GetFiles 方法 (String, SearchOption)
    WF中创建持久化服务和跟踪服务数据库
    ConfigurationSection自定义配置的使用
    微软企业库5.0系统(一):使用缓存 Microsoft.Practices.EnterpriseLibrary.Caching(初级篇)
    HttpWebRequest传输Cookie
    jquery优化规则
  • 原文地址:https://www.cnblogs.com/zhiboday/p/5995922.html
Copyright © 2011-2022 走看看