码迷,mamicode.com
首页 > Windows程序 > 详细

18.WinForm练习--记事本应用程序

时间:2019-05-23 13:17:07      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:info   获得   换行   code   pre   pac   led   list   title   

namespace _18记事本应用程序
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {
        //加载程序的时候隐藏panel
        panel1.Visible = false;
        //取消文本框自动换行
        textBox1.WordWrap = false;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //点击按钮时也将panel隐藏
        panel1.Visible = false;
    }

    private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //点击显示按钮时显示panel
        panel1.Visible = true;
    }

    private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //点击隐藏按钮时隐藏panel
        panel1.Visible = false;
    }
    //获得打开文件的全路径
    List<string> list = new List<string>();
    private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //打开对话框
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Title = "请选择要打开的文件";
        ofd.InitialDirectory = @"C:\Users\Administrator.USER-20180925HC\Desktop\pic";
        ofd.Multiselect = true;
        ofd.Filter = "文本文件|*.txt|所有文件|*.*";
        //显示打开对话框
        ofd.ShowDialog();

        //将选中打开的txt文件展现在textBox中
        //获得文件的全路径
        string path = ofd.FileName;
        //添加全路径到list集合中
        list.Add(path);
        //获得用户打开的文件名
        string fileName = Path.GetFileName(path);
        //将文件名赋值给listBox
        listBox1.Items.Add(fileName);
        //判断路径是否为空
        if (path == "")
        {
            return;
        }
        //如果路径不为空
        using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))
        {
            //读到字节数组当中
            byte[] buffer = new byte[1024 * 1024 * 5];
            //调用读取的方法
            int r = fsRead.Read(buffer, 0, buffer.Length);
            //开始解码,解码后赋值给textBox
            textBox1.Text = Encoding.Default.GetString(buffer,0, r);
        }

    }

    private void 保存ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        //保存对话框
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.Title = "请选择保存路径";
        sfd.InitialDirectory = @"C:\Users\Administrator.USER-20180925HC\Desktop\pic";
        sfd.Filter = "文本文件|*.txt|所有文件|*.*";
        sfd.ShowDialog();

        //获得文件要保存的路径
        string path = sfd.FileName;
        //判断路径是否为空
        if (path == "")
        {
            return;
        }
        //不为空则开始解码
        using(FileStream fsWrite=new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
        {
            byte[] buffer = Encoding.Default.GetBytes(textBox1.Text);
            fsWrite.Write(buffer, 0, buffer.Length);
        }
        MessageBox.Show("保存成功");
    }

    private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (自动换行ToolStripMenuItem.Text == "自动换行")
        {
            textBox1.WordWrap = true;
            自动换行ToolStripMenuItem.Text = "取消自动换行";
        }
        else if(自动换行ToolStripMenuItem.Text=="取消自动换行")
        {
            textBox1.WordWrap = false;
            自动换行ToolStripMenuItem.Text = "自动换行";
        }
    }

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

    private void 颜色ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        ColorDialog cd = new ColorDialog();
        cd.ShowDialog();
        textBox1.ForeColor = cd.Color;
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

    private void listBox1_DoubleClick(object sender, EventArgs e)
    {
               //双击listBox文件列表文件名,则在textBox显示文件信息
        //获得双击文件的全路径
        string path = list[listBox1.SelectedIndex];
        using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))
        {
            byte[] buffer = new byte[1024 * 1024 * 5];
            int r = fsRead.Read(buffer, 0, buffer.Length);

            textBox1.Text = Encoding.Default.GetString(buffer, 0, r);
        }

    }
}

}

18.WinForm练习--记事本应用程序

标签:info   获得   换行   code   pre   pac   led   list   title   

原文地址:https://blog.51cto.com/12679593/2398965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!