WinForm程序如何保存最近登录的账号? 急 急 急 !! WinForm程序如何保存最近登录的账号?就像QQ一样...打开时会自动显示上次登录的账号..请提供一个思路和,最好有代码,谢谢了^_^ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 登陆的时候将帐号记录在xml中就可以把,再次启动登陆界面的时候,加载xml文件中的用户名就可以咯。 1、在登录框要放有一个“是否记住密码”的控件2、当登录成功后,并且用户选择了记住密码。那么将这个用户名和密码保存在一个文件中,可以是XML格式的文件,当然最好要加密。3、除了保存到文件,还可以将用户名和密码保存在客户端的注册表中,等等,4、下次用户登录的时候判断下注册表或者xml文件是否存在有效数据,有则读取并且赋值给登陆框。5、若用户选了不记住密码,那么要清空注册表或者xml中的数据 To gomoku:放注册表会不会太麻烦。没用过不知道怎么写啊。代码方面可以提示下么?To hookyzlr:我只有app。cofig文件。要写进xml文件怎么写呀?能给个例子看么? 真的很急着用啊。帮帮忙 如果不用注册表也可以在Settings.Settings下添加用户范围的条目,可读可写,系统帮你具体操作配置文件。 用FileStream 写到文本里面,然后读取文本内容 添加到combobox中。。 在你的debug目录下建一个access文件,每次登陆插入一条数据。其它的怎么做就不用说 建立个XML文件简单记录一下就好了,不用想的太复杂 System.Configuration.KeyValueConfigurationElement k = c.AppSettings.Settings["k"]; if (k== null) { c.AppSettings.Settings.Add("k", ""); } else { // k.Value; }保存到配置里 可以记录一下登录的记录放到数据库的log表中 但是定期要去清理这个表 txt文本就OK了,有必要搞这么麻烦嘛,还注册表…… 在登陆时把登陆名存入一个xml文件里,在登陆窗口加载事件中去读取保存登陆名那个文件里有名字参考:登录事件if (File.Exists(Application.StartupPath + @"\NoteSet.xml")) { XmlDocument doc = new XmlDocument(); doc.Load(Application.StartupPath + @"\NoteSet.xml"); XmlNode node = doc.GetElementsByTagName("Bespeak")[0]; node.Attributes["auto"].Value = auto ? "T" : "F"; node.InnerText = content; doc.Save(Application.StartupPath + @"\NoteSet.xml"); }加载事件if (File.Exists(Application.StartupPath + @"\NoteSet.xml")) { XmlDocument doc = new XmlDocument(); doc.Load(Application.StartupPath + @"\NoteSet.xml"); XmlNode node = doc.GetElementsByTagName("Bespeak")[0]; cbBespeakNote.Checked = (node.Attributes["auto"].Value == "T") ? true : false; txtNoteContent.Text = node.InnerText; } xml文件<?xml version="1.0" encoding="utf-8" ?><Note> <Bespeak auto="T">你好</Bespeak></Note> node.Attributes["auto"].Value = auto ? "T" : "F"; 这个是什么?node.InnerText = content; 这个是什么的值?cbBespeakNote.Checked = (node.Attributes["auto"].Value == "T") ? true : false这个是什么控件? 放配置文件简单。绑定到 TextBox的Text属性上。读写都省了 怎么放配置文件? 放什么配置文件呀 ?是config文件还是xml文件吖?绑定又是怎么绑定??说得太笼统了点 。我完全不明白呀 登陆的时候将帐号记录在xml中就可以把,再次启动登陆界面的时候,加载xml文件中的用户名就可以咯。 第一种方法:序列化保存。[Serializable]public User{ public string UserName{get;set}; public string Password{get;set};}下面的m_drawModel是User的一个对象//保存private void tsbSave_Click(object sender, EventArgs e) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "DrawAnswerFile(*.daf)|*.daf|All File(*.*)|*.*"; if (dlg.ShowDialog() == DialogResult.OK) { using (FileStream stream = new FileStream(dlg.FileName, FileMode.Create)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, m_drawModel); stream.Flush(); } } }//读取 private void tsbOpen_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "DrawAnswerFile(*.daf)|*.daf"; if (dlg.ShowDialog() == DialogResult.OK) { ClearControls(); using (FileStream stream = new FileStream(dlg.FileName, FileMode.Open)) { BinaryFormatter formatter = new BinaryFormatter(); m_drawModel = (DrawModel)formatter.Deserialize(stream); OpenInitialControls(); } } }第二种方法:给你的应用程序加一个Config文件。如下:<appSettings> <add key="UserName" value="Admin"/> <add key="Password" value="admin"/></appSettings>之后这样取出来就可以了。(必须Reference进来 System.Configuration库)string userName = ConfigurationManager.AppSettings["UserName"];string password = ConfigurationManager.AppSettings["Password"];第一种方法可能保密性稍微好点吧。这个可以和本地化存储结合起来用就更好点了。第二种方法方便一点。 Linq 更新失败 线程同步上下文问题 richTextBox如何设置每行输入最大字符数 SQL Update select 如何修改通知事件?一个很有深度的问题。 怎么实现IDisposable接口 怎么高效率批量插入1000条数据到数据库 winfrom两个窗体之间传值 郁闷!来散分的!大家说说看工作有段时间了,总觉得自己的技术水平不够.... 有关控件绑定问题 C# 对Oracle数据库备份、还原 大家好,我刚开始学习C#。其中有两面三刀句看不懂,希望兄弟姐妹解释下,详细点,谢谢,我现在还没有积分,请不吝赐教
2、当登录成功后,并且用户选择了记住密码。那么将这个用户名和密码保存在一个文件中,可以是XML格式的文件,当然最好要加密。
3、除了保存到文件,还可以将用户名和密码保存在客户端的注册表中,等等,
4、下次用户登录的时候判断下注册表或者xml文件是否存在有效数据,有则读取并且赋值给登陆框。
5、若用户选了不记住密码,那么要清空注册表或者xml中的数据
To hookyzlr:我只有app。cofig文件。要写进xml文件怎么写呀?
能给个例子看么? 真的很急着用啊。帮帮忙
if (k== null)
{
c.AppSettings.Settings.Add("k", "");
}
else
{
// k.Value;
}保存到配置里
参考:
登录事件
if (File.Exists(Application.StartupPath + @"\NoteSet.xml"))
{
XmlDocument doc = new XmlDocument();
doc.Load(Application.StartupPath + @"\NoteSet.xml");
XmlNode node = doc.GetElementsByTagName("Bespeak")[0];
node.Attributes["auto"].Value = auto ? "T" : "F";
node.InnerText = content;
doc.Save(Application.StartupPath + @"\NoteSet.xml");
}
加载事件
if (File.Exists(Application.StartupPath + @"\NoteSet.xml"))
{
XmlDocument doc = new XmlDocument();
doc.Load(Application.StartupPath + @"\NoteSet.xml");
XmlNode node = doc.GetElementsByTagName("Bespeak")[0];
cbBespeakNote.Checked = (node.Attributes["auto"].Value == "T") ? true : false;
txtNoteContent.Text = node.InnerText;
}
<?xml version="1.0" encoding="utf-8" ?><Note>
<Bespeak auto="T">你好</Bespeak>
</Note>
cbBespeakNote.Checked = (node.Attributes["auto"].Value == "T") ? true : false
这个是什么控件?
绑定到 TextBox的Text属性上。读写都省了
绑定又是怎么绑定??
说得太笼统了点 。我完全不明白呀
[Serializable]
public User
{
public string UserName{get;set};
public string Password{get;set};
}下面的m_drawModel是User的一个对象
//保存
private void tsbSave_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "DrawAnswerFile(*.daf)|*.daf|All File(*.*)|*.*";
if (dlg.ShowDialog() == DialogResult.OK)
{
using (FileStream stream = new FileStream(dlg.FileName, FileMode.Create))
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, m_drawModel);
stream.Flush();
}
}
}
//读取
private void tsbOpen_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "DrawAnswerFile(*.daf)|*.daf";
if (dlg.ShowDialog() == DialogResult.OK)
{
ClearControls();
using (FileStream stream = new FileStream(dlg.FileName, FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
m_drawModel = (DrawModel)formatter.Deserialize(stream);
OpenInitialControls();
}
}
}第二种方法:
给你的应用程序加一个Config文件。
如下:
<appSettings>
<add key="UserName" value="Admin"/>
<add key="Password" value="admin"/>
</appSettings>
之后这样取出来就可以了。(必须Reference进来 System.Configuration库)
string userName = ConfigurationManager.AppSettings["UserName"];
string password = ConfigurationManager.AppSettings["Password"];
第一种方法可能保密性稍微好点吧。这个可以和本地化存储结合起来用就更好点了。
第二种方法方便一点。