在C#窗体应用程序中怎么在窗口关闭前保存ListBox中的内容?代码是怎样的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C#窗体应用程序中怎么在窗口关闭前保存ListBox中的内容?代码是怎样的?相关的知识,希望对你有一定的参考价值。

我晕,人家问代码怎么写,你们却答非所问
首先命名空间:
using System.IO;

其次listbox添加内容,此步可跳过
listBox1.Items.Add("A");
listBox1.Items.Add("B");
listBox1.Items.Add("C");
listBox1.Items.Add("D");
listBox1.Items.Add("E");
listBox1.Items.Add("F");

最后,在FormClosing事件里添加保存的代码
private void Form1_FormClosing(object sender, FormClosingEventArgs e)

FileStream fs = new FileStream("C:\\tmp.txt", FileMode.OpenOrCreate);
//保存路径可以自己更改
StreamWriter sw = new StreamWriter(fs);
foreach (object item in listBox1.Items)

sw.WriteLine(item.ToString());

sw.Close();
fs.Close();


有事请HI我:)
参考技术A 在事件里学代码,找到窗口关闭之前的的时间,之后些上保存ListBox的代码就ok了追问

关键是代码怎么写啊?

参考技术B sender, EventArgs e)

mysqlConnection conn = new MySqlConnection();//数据库连接
MySqlCommand cmd = new MySqlCommand();//命令执行器
try

conn = new MySqlConnection("Server=localhost;User Id=root;Password=1234;Persist Security Info=True;Database=mysql");
//连接串格式:
//Server是服务器名,可以是IP地址
//User Id是用户名
//Password是密码
//Database是要操作的数据库名
conn.Open();//打开数据库
cmd = conn.CreateCommand();//创建连接器的命令执行器
cmd.CommandText = "show tables;";//将要执行的SQl语句传给命令执行器
MySqlDataReader reader = cmd.ExecuteReader();//执行数据查询,返回读取器
if(reader.HasRows)//返回结果集不为空

while(reader.Read())//移动读取指针到下一条记录(初始时指针在第一条记录之前)

string rset = reader.GetString(0);//以字串形式返回第一个字段值
if(!string.IsNullOrEmpty(rset))//数据不为空时
listBox1.Items.Add(rset);//加载到LISTBOX中



catch(Exception err)
//异常捕获并输出
MessageBox.Show(err.Message + "\r\n" + err.StackTrace);

finally

cmd.Dispose();//释放命令执行器
conn.Close();//断开数据库连接
conn.Dispose();//释放连接器



void ListBox1Click(object sender, EventArgs e)

int idx = listBox1.SelectedIndex;//得到LISTBOX中单击的行号
string sret = listBox1.Items[idx].ToString();//得到被单击行的文本
if(!string.IsNullOrEmpty(sret))
textBox1.Text = sret;//显示到TEXTBOX中


我用的IDE环境是SHARPDEVLOPER,数据库是MYSQL的

有不明白的在线M我,QQ是93803979,其它IDE环境或数据库我现在没有,明天可以给你写追问

谢谢!我现在写的不需要连接数据库,不过还是谢谢你的代码!

参考技术C 把保存内容的代码放到
Window_Closed 或 Window_Closing 的事件里~
参考技术D 你想要保存到什么地方?追问

保存到文本文档里面!

追答

用文件流应该可以

C#在桌面右下角显示Popup窗口提醒

参考技术A Popup窗口提醒实际上就是在屏幕右下角弹出的提示窗口,它的应用十分广泛,如程序得的升级、提示当天的工作内容等,本实例将制作一个动态显示和隐藏的Popup窗口提醒。

【关键技术】

 本实例主要是使用API函数AnimateWindow来动态显示指定的窗体,并用Control类的SetBounds方法设置窗体的边界。

 下面对本实例中用到的关键技术进行详细讲解。

 (1)AnimateWindow函数

   该函数主要用力实现窗体的动画效果。语法格式如下:

(2)SetBounds方法

   该方法将空间的边界设置为指定位置和大小。语法格式如下:

【设计过程】

 (1)打开Visual Studio,新建WinForm应用程序,命名为PopupForm。

 (2)将默认的Form1窗体命名为FrmMain、作为主窗体。

 (3)新建一个FrmInfo窗体,作为动态显示出来的消息窗体。

 (4)在FrmMain窗体上放置两个按钮、用来控制FrmInfo消息窗体,一个用于显示,一个用于隐藏。

    (5)在FrmInfo中自定义一个ShowForm方法,主要用啦显示从桌面右下角显示Popup提醒窗口的功能:

    (6)在FrmInfo窗体中自定义一个CloseForm方法,该方法中首先调用API函数AnimateWindow动画隐藏窗体,然后将窗体的状态设置为隐藏:

 (7)在这里,需要说明的是,如果没有把FrmInfo的FormBorderStyle设置为None、也就是说、如果有变宽的话、

   使用AnimateWindow动态显示时边框不会动态显示的、所以在这里我把FrmInfo设置为了没有边框,

   还有一个问题、如果用户在FrmInfo上Alt+F4关闭了、那么就不能访问FrmInfo类中定义的那个成员变量了、所以在这里使用了单例设计模式、并在FormClosing中重新清空FrmInfo的成员变量为null、

【附注:使用Screen类获取桌面的大小】

 Screen类表示单个系统上的一个或多个显示设备,其PrimaryScreen属性用来获取主显示,该属性返回一个Screen对象,而调用Screen对象的WorkingArea属性可以获取显示器的工作区,也就是桌面的大小。

----->>>>>>>>>>>>>>>> 详细工程源码 <<<<<<<<<<<<<<<-------

以上是关于在C#窗体应用程序中怎么在窗口关闭前保存ListBox中的内容?代码是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章

C# winform怎么实现子窗体关闭时刷新父窗体数据

款式修改窗口,开发调整过窗口格局保存功能,关了窗口重新打开还是按关闭前的格局.

C# WinForm中,如何判断窗口已打开

c#里面如何显示下一个窗体而关闭当前窗体?

C# 使用多线程,在关闭窗体时 怎么关闭窗体的所有线程,使程序退出

不覆盖 C# 窗口窗体中保存的 xml 文件