Windows Form -----内容(12)流与事件

文件及文件夹操作:
一、流:
文件流:FileStream。用来操作文件。
命名空间:System.IO;
使用流的步骤:——最原生的流的操作。——通用性最强的。
1.创建流。
FileStream fs = new FileStream("文件路径",FileMode枚举);
    FileMode.Appen - 如果存在,就打开追加;如果不存就新建
    FileMode.Create - 如果存在,覆盖。如果不存在就新建。
    FileMode.OpenOrCreate。如果存在就打开,不存在就新建。
2.读取或写入流。

(1)..写入流:
     第一步:需要把字符串,变成二进制数组:
     byte[] aaa = System.Text.Encoding.Default.GetBytes(txt.Text);
     第二步:写入流
         fs.Write(aaa, 0, aaa.Length);    
        //第一个参数:要被写进去的二进制数据;
        //第二个参数:开始的位置,一般都是0
        //第三个参数:要往流里面写入的长度。一般都是数组的length

(2).读取流:
    第一步:准备一个二进制的数组,用来接收二进制数据。
    byte[] aaa = new byte[fs.Length];  //数组的长度,一般使用流的长度来定义,因为这个数组就是用来存储流中的数据的。
    第二步:使用进行读取,把读出来的内容放在上面的二进制数组中。
    fs.Read(aaa,0,aaa.Length);
        //第一个参数:被读出来的二进制数据;
        //第二个参数:开始的位置,一般都是0。从哪开始读
        //第三个参数:要读取的长度。一般都是数组的length。即流的长度

第三步:把读出的二进制数组变成字符串。
    string s = System.Text.Encoding.Default.GetString(aaa);

3.关闭流。
    fs.Close();

文件操作时,防止内存泄漏的方法:
法一:try...finally
法二:using(){ }
案例:
        private void btnSave_Click(object sender, EventArgs e)
        {
            FileStream fs = null;
            try
            {
                //创建流
                fs  = new FileStream("aaa.txt", FileMode.Create);

//把文本框的字符串,变成1010101二进制byte[]
                byte[] aaa = System.Text.Encoding.Default.GetBytes(txt.Text);
                //写入流
                fs.Write(aaa, 0, aaa.Length);
            }
            finally
            {
                //关闭流
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }

private void button1_Click(object sender, EventArgs e)
        {
            //创建流
            using (FileStream fs = new FileStream("aaa.txt", FileMode.Open))
            {
                //准备一个空的二进制数组,用来接收读取出来的内容
                byte[] aaa = new byte[fs.Length];
                //读取流
                fs.Read(aaa, 0, aaa.Length);
                //把二进制转为字符串
                txt.Text = System.Text.Encoding.Default.GetString(aaa);

//关闭流
                fs.Close();
            }
        }

对于文本(字符串)形式的文件流可以使用StreamWriter和StreamReader来简化操作。
1.创建流
FileStream fs = new FileStream("bbb.txt",FileMode.Create);
//FileStream fs = new FileStream("bbb.txt",FileMode.Open);
2.套读取器或写入器。
StreamWriter writer = new StreamWriter(fs);
//StreamReader reader = new StreamReader(fs);
3.使用读取器或写入器对文件流进行操作。
writer.Writer("字符串");
//string s = reader.ReadToEnd();
4.关闭读取器和文件流。
writer.Close();
//reader.Close();
fs.Close();

对于文本(字符串)形式的文件还可以再简化。——不用写流的创建,关闭,直接使用流的读取器和写入器
        private void button4_Click(object sender, EventArgs e)
        {
            StreamWriter writer = new StreamWriter("ccc.txt",true, Encoding.Default);
            writer.Write(txt.Text);
            writer.Close();
        }

private void button5_Click(object sender, EventArgs e)
        {
            StreamReader reader = new StreamReader("ccc.txt",Encoding.Default);
            txt.Text =  reader.ReadToEnd();
            reader.Close();
        }

控件的动态生成与操作:
事件三要素:事件源,事件数据,事件处理程序
        //sender-事件源,EventArgs-事件数据,函数体就是处理程序
        private void button1_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button; //把事件源具像化。
            MessageBox.Show(btn.Text); //显示事件源的文本。
        }

加载数据库中的数据,如果内容非常多,就显示出滚动条。类似于QQ好友列表的效果。
1.先放一个Panel在窗体中Dock布局一下。
2.在这个Panel里面放一个FlowLayoutPanel,设置它从上到下流式布局。
3.外面的Panel需设置AutoScroll=true .超出范围就显示滚动条。**
4.里面的FlowLayoutPanel,设置它Dock=Top,AutoSize=true

时间: 2024-08-11 06:24:08

Windows Form -----内容(12)流与事件的相关文章

Windows Form -----内容(7)

简单记录一下:对话框控件和布局控件 对话框:一.提示对话框:DialogResult result = MessageBox.Show("提示文字","标题文字",按钮设置,图标设置)if(result == 枚举){} 二.其它对话框:(一)ColorDialog:1.属性:    Color - 选中的颜色.2.方法:    ShowDialog() - 把颜色对话框显示出来.返回一个DialogResult对象.3.案例:            DialogR

Windows Form -----内容(6)

FORM1 FORM2 添加在前面已经做过了,不再做过多的追叙.实现修改和删除的功能,主要用的知识点是:ListView: ListView: 主要是用来显示的控件.一.有五种显示的视图:大图标.小图标.平铺.列表.详细—— View属性*************二.ListView的结结构:1.ListView包括好多个ListViewItem,每个ListViewItem就是所显示的一项.    ListView1.Items --- ListViewItem项的集合    例如:    L

Windows Form -----内容(8)

窗体类型:SDI  MDI单文档窗体界面,多文档窗体界面 一.单文档窗体界面:有一个主窗体,其它的窗体是辅窗体和对话框.主窗体一旦关掉,整个程序全部结束. 案例一:如何做登录?1.确定好主窗体.在Program.cs文件中的Main函数,使用Application.Run()启动主窗体.Application.Run(new Main());2.做一个登录窗体.    登录验证完成后,不要关闭窗体,也不要显示主窗体.只需要给this.DialogResult赋个值即可.        priva

Windows Form -----内容(1)

窗体: 一.控制标题栏 Text--控制标题栏的文字 Icon--控制标题栏的图标 MaximizeBox--窗体标题栏的右上角是否有最大化框(ture/false) MinimizeBox--窗体标题栏的右上角是否有最小化框(ture/false) ControlBox--所有的最大化.最小化.关闭按钮(ture/false) 二.控制背景 BackColor--控制背景色 BackgroundImage--控制背景图 BackgroundImageLayout - 背景的布局方式 Tile-

Windows Form -----内容(10)

权限管理:一.设置权限:(一)设计界面:(二)代码:1.窗体加载时候:把人员加载上,把功能加载上.  **2.根据人员查看它相应的功能.**3.设置人员的功能.二.根据权限加载界面: namespace WindowsFormsApplication17 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Filluser() { List<UserPermiss

Windows Form -----内容(5)

同一表格下的三级联动:                 代码: class DBconnection    {        public const string CONNECTIONSTRING = "server=.;database=mydb;uid=sa;pwd=5587725";    } class chinastates    {        public string AreaCode { get; set; }        public string AreaN

Windows Form -----内容(4)

       三个表中的下拉列表代码: class DBconnection    {        public const string CONNECTIONSTRING = "server=.;database=mydb;uid=sa;pwd=5587725";    } class cbProd    {        private string _Prod_Code; public string Prod_Code        {            get { ret

Liam的C# 学习历程(七):WPF(Windows Presentation Foundation)、Windows Form Applications

在今天的课堂中,老师向我们讲述了关于一些WPF(Windows Presentation Foundation)和Windows Form Applications的内容,接下来就让我们一起来复习一下: (一).WPF(Windows Presentation Foundation): WPF是一个重要运用于desktop手机开发方面.它使用到了一种XML的变形语言——XAML的语言(eXtensible Application Markup Language). 使用XAML开发人员可以对WP

如何用Web技术开发Windows Form应用

现在H5很热,很多互联网公司的产品都采用混合编程,其中各个平台客户端的“壳”为原生控件,但是内容很多都是Web网页,因此可以做出很多炫酷的效果.随着Node.js和Ionic等框架的出现,现在感觉JavaScript有一统Web.Mobile.PC三大平台应用开发的能力.在Windows Form 上,利用开源浏览器内核Chromium Embedded Framework (CEF),CEF可以实现C#调用JS,JS调用C#,可以很好的与Web进行应用交互.下面用一个简单的例子来说明. 1 新