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

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);
        }

    }
}

}

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

时间: 2024-10-14 11:05:15

18.WinForm练习--记事本应用程序的相关文章

WINFORM中几句程序获取整个屏幕的图片及当前窗口的图片快照

/// <summary> /// 获取整个屏幕的图片        /// </summary>        /// <returns></returns>        public static Image GetScreenImage()        {            Image image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bound

基于C# Winform的简易聊天程序[第一篇-两端通信]

程序简介 本聊天程序支持局域网内部客户端与服务端之间的互相通信. 原理 启动服务端后,服务端通过持续监听客户端发来的请求,一旦监听到客户端传来的信息后,两端便可以互发信息了.服务端需要绑定一个IP,用于客户端在网络中寻找并建立连接.信息发送原理:将手动输入字符串信息转换成机器可以识别的字节数组,然后调用套接字的Send()方法将字节数组发送出去.信息接收原理:调用套接字的Receive()方法,获取对端传来的字节数组,然后将其转换成人可以读懂的字符串信息. 界面设计 - 服务端 IP文本框 na

SNF开发平台WinForm之八-自动升级程序部署使用说明-SNF快速开发平台3.3-Spring.Net.Framework

9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Load事件或者Program入口的Main方法第一行代码加上如下代码: 注意:是主程序的 Load事件要加上调整自动更新程序的代码.要以模式打开窗口.如果没有差异会自动关闭升级窗口显示主窗口. 3.把下面目录里的文件拷贝到 应用程序的同级目录下: 4.配置WINFORMS应用程序目录下Updateli

安卓记事本小程序开发

这几天用自己目前掌握的安卓开发知识制作了一个记事本小程序,在这里分享一下开发流程,希望可以帮到和我一样的初学者. 开发工具为Android studio,后台语言为java,使用的数据库为安卓的SQLite数据库,功能及效果图如下: 主界面,长按可删除: 点击加号添加: 主页面点击查看,此页面含修改和删除功能: 主要使用的技术:数据存储使用的数据库存储,我之前的博客有讲过安卓SQLite的基础操作:数据的显示用的是ListView部件,数据传输用的是intent技术,页面间的跳转也是借助inte

WinForm开发控制应用程序自启动功能

本文主要讲述WinForm开发应用程序需要设置自启动功能,这个也是在实际开发中经常涉及到的,非常实用,所讲到的是通过注册表来控制程序是否自行启动,具体功能实现上两张图,更直观. 如下图: 程序设置保持界面实现代码 using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us

在winform嵌入外部应用程序

应朋友要求,需要将一个第三方应用程序嵌入到本程序WinForm窗口,以前在VB6时代做过类似的功能,其原理就是利用Windows API中FindWindow函数找到第三方应用程序句柄,再利用SetParent函数,将该句柄设置为本窗口的子窗口. 网上搜索大部分都是利用System.Diagnostics.Process获取外部应用程序的MainWindowHandle,貌似以前的COM应用程序可以,在Win10下调用Process.MainWindowHandle会提示“应用程序已退出”,也就

C# WinForm实现任务栏程序图标闪烁

相信大家在用QQ的时候都会知道,你打开了QQ聊天窗口,如果窗口不是当前激活的窗口的话,收到QQ消息时,任务栏(不是托盘图标)上的图标会闪一下变成黄色(Win7默认主题下),用以通知用户有消息进来了,之前我用C#不知道这是怎么做的,用this.Activate()方法就是直接激活窗体,没有达到想要的效果.后来找到了两个API函数,可以实现这个功能.用到一个Windows的API函数.先来看看这个函数: BOOL FlashWindow( HWND hWnd, // handle to window

简述 18.8.18 现有的微信小程序API能力

小程序能力竟恐怖如斯---- // 用于简述API能力 var obj = { 网络: ["发起请求", "上传/下载", "WebSocket"], 媒体: 媒体: { 图片: [ "从本地相册选择图片或使用相机拍照", "预览图片", "获取图片信息,倘若为网络图片,需先配置download域名才能生效", "保存图片到系统相册", // 需要用户授权 ], 录音

ubuntu 18.04 检测到系统程序出现问题

检测到系统程序出现问题,想立即报告这个问题吗? 可以暂时先把这个提示关闭掉 $ sudo vi /etc/default/apport 找到第4行 修改为 enabled=0 保存退出 附linux中各个日志文件 /var/log/alternatives.log-更新替代信息都记录在这个文件中 /var/log/apport.log -应用程序崩溃记录 /var/log/apt/ -用apt-get安装卸载软件的信息 /var/log/auth.log -登录认证log /var/log/bo