有没有一个变量是可以在关闭后再打开不会初始化的?

asppine 2008-06-08 10:10:06
有没有一个变量是可以在关闭后依旧不会更改的?

比如form窗体里有个textbox1,当第一次用户打开后,输入“abcdefg”,然后点button1进行“保存”。

然后关闭程序,再次打开后,点击button2(或不需要点击)就直接在textbox1显示上次输入的文字“abcdefg”?
...全文
127 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypacyhero 2008-06-09
  • 打赏
  • 举报
回复
保存到程序当中肯定是不行。。

因为程序始终在内存中运行。

程序关掉。相关内存空间被os回收

如果想保持只能持久化到文件。。。

不要使用注册表。

fuadam 2008-06-09
  • 打赏
  • 举报
回复
给你一个序列化的代码,假设你界面有个文本框一个按钮
在窗体加载的函数里写
private void Form6_Load(object sender, EventArgs e)
{
if (System.IO.File.Exists(Application.StartupPath + "num.dat"))
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream fs = new System.IO.FileStream(Application.StartupPath + "num.dat", System.IO.FileMode.Open);
this.textBox1.Text = formatter.Deserialize(fs).ToString();
fs.Close();
}
else
this.textBox1.Text = "0";
}
在点击按钮保存textbox的值的函数里写
private void button2_Click(object sender, EventArgs e)
{
string num = this.textBox1.Text;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream fs = new System.IO.FileStream(Application.StartupPath + "num.dat", System.IO.FileMode.Create);
formatter.Serialize(fs, num);
fs.Close();
}
num.dat就是一个2进制文件
asppine 2008-06-09
  • 打赏
  • 举报
回复
谁能给个简单的例子程序?望各位帮忙。谁给了。我就把分数最高给他/
jryu2k5 2008-06-08
  • 打赏
  • 举报
回复
建议使用ini文件,并使用你的程序的guid值进行数据移位;如果又想不给人家那末容易该的话,可以从多方面来记录,到时候比较一下是否一致就行啦,不过会比较麻烦
lya121 2008-06-08
  • 打赏
  • 举报
回复
我不说了。
没必要去转牛角尖。

那就写数据库吧、随楼主的意了,爱怎么弄怎么弄被。反正方法挺多的。
wuyi8808 2008-06-08
  • 打赏
  • 举报
回复
如果懒得分析,就直接简单地删除了,就回到初始值了。
wuyi8808 2008-06-08
  • 打赏
  • 举报
回复
二进制也是可分析和可修改的。
lya121 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wuyi8808 的回复:]
是LZ在7楼说要防用户修改的。
[/Quote]
噢、
没注意看。

那就用二进制输出吧。
或者序列化了!序列化的也是二进制的 - -!
wuyi8808 2008-06-08
  • 打赏
  • 举报
回复
是LZ在7楼说要防用户修改的。
lya121 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyi8808 的回复:]
引用 7 楼 asppine 的回复:
假设,我要设置一个判断用户使用程序次数,
总不能设个记事本吧??懂点电脑的用户,一改不就完了?

如果要防修改,可以写到数据库中,懂再多电脑的用户没有数据库管理员密码也改不了。
[/Quote]

MS这位专家把简单问题复杂化了。

直接序列化吧、不懂就直接用文件流输出吧。
wuyi8808 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 asppine 的回复:]
假设,我要设置一个判断用户使用程序次数,
总不能设个记事本吧??懂点电脑的用户,一改不就完了?
[/Quote]

如果要防修改,可以写到数据库中,懂再多电脑的用户没有数据库管理员密码也改不了。
amandag 2008-06-08
  • 打赏
  • 举报
回复
一般写到文本文件(后缀.ini)或者xml文件中
asppine 2008-06-08
  • 打赏
  • 举报
回复
序列化我不懂- -!能解释下?和保存文本相比呢?
假设,我要设置一个判断用户使用程序次数,
总不能设个记事本吧??懂点电脑的用户,一改不就完了?
管道水手 2008-06-08
  • 打赏
  • 举报
回复
建议使用XML
fuadam 2008-06-08
  • 打赏
  • 举报
回复
比注册表简单

asppine 2008-06-08
  • 打赏
  • 举报
回复
没办法直接保存在程序当中?注册表?……保存文本倒是一个好方法,只不过略显麻烦。
asppine 2008-06-08
  • 打赏
  • 举报
回复
拿个最简单的。
每打开1次 StatusStrip1的label1会显示:“您已使用X次”……
这个X变量要怎么设置?
fuadam 2008-06-08
  • 打赏
  • 举报
回复
你把输入的值保存在文本,或者序列化到硬盘
wuyi8808 2008-06-08
  • 打赏
  • 举报
回复
保存在注册表中。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧