实现记住vb点虐 的简单介绍

关于VB.NET制作记事本自动保存的问题

分类: 电脑/网络 程序设计 其他编程语言

长治ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

问题描述:

我用的是Timer计时器:

如何将程序控制住,让它第一次发现没保存后,只击活一次提示保存,然后使用修改后的保存路径:(代码如下)

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'如何将程序控制住,让它第一次发现没保存后,只击活一次提示保存,然后使用修改后的保存路径

If SaveFileDialog1.FileName = "" Then

If SaveFileDialog1.ShowDialog Then

rtbox.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)

End If

Else

'如果已经选择了要保存的文件名,则保存文本到文件中

rtbox.SaveFile(SaveFileDialog1.FileName, RichTextBoxStreamType.PlainText)

End If

End Sub

————————————————————

此代码执行后变成死循环。

解析:

经过我的潜心修炼问题终于是解决了.请看代码

Imports System.IO

Private strFileName As String = "myRTFdoc.txt"

Private flgFirst As Boolean = True

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

'如何将程序控制住,让它第一次发现没保存后,只击活一次提示保存,然后使用修改后的保存路径

Call zc()

End Sub

Private Sub zc()

'Timer2.Stop()

With SaveFileDialog1

.DefaultExt = "txt"

.FileName = strFileName

.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*"

.FilterIndex = 1

.InitialDirectory = "c:\"

.OverwritePrompt = True

.Title = "Save Reminding"

End With

'Timer2.Enabled = False

If flgFirst = True Then

If SaveFileDialog1.ShowDialog = DialogResult.OK Then

strFileName = SaveFileDialog1.FileName

Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)

objWriter.Write(rtbox.Text)

objWriter.Close()

objWriter = Nothing

End If

flgFirst = False

'Timer2.Enabled = True

' Timer2.Start()

Else

'flg= second

Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)

objWriter.Write(rtbox.Text)

objWriter.Close()

objWriter = Nothing

End If

'Timer2.Enabled = True

'Timer2.Start()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Timer2.Enabled = True

' zc()

End Sub

知道问题在哪里嘛?我调试了确实是"死循环"、其实不是真正的死循环、是time tick事件你设定的时间太短了.估计只设置了1-5s左右.那么程序运行还需要时间.所以他就不停地调用timetick时间.你的savedialog对话框根本来不急弹出来.

所以建议你把timer的interval的值设置高点最好12-15秒 触发一次.

当然我想还有其他的方法、还没有彻底取研究下.

比如stop 什么 、那还需要时间.

至少目前我的方法是可以了.

我设置的12s P4. 3.0 1G 内存 跑下我的程序如果 F10(F8)慢点的话就来不及了.

另为把你的程序小改了下、应该可以满足你的要求了.

VB点虐 如何实现记住密码 自动登录

代码如下:

/// summary

/// 连接到窗体:通过密码保护信息找回密码!

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void lbl_mibao_Click(object sender, EventArgs e)

{

Getbackpwd getbackpwd = new Getbackpwd();

getbackpwd.Show();

}

/// summary

/// 当该窗体加载时从xml文件中读取用户信息并加载到combox的Items中

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void Addresslist_Load(object sender, EventArgs e)

{

XmlTextReader reader = new XmlTextReader(@"E:\面向对象--C#练习\通讯录\address list\address list\user.xml");

while (reader.Read())

{

//if (reader.LocalName.Equals("Name") || reader.LocalName.Equals("Number"))

if (reader.LocalName.Equals("username"))

{

this.cmbUserName.Items.Add(reader.ReadString());

}

//if (reader.LocalName.Equals("Number"))

//{

// this.label2.Text += reader.ReadString() + "\n";\

//}

}

reader.Close();

}

/// summary

/// 保存用户名到user.xml

/// /summary

//在listcontol上更改SelectedValue时执行从数据库读取密码的事件

private void cmbUserName_SelectedValueChanged(object sender, EventArgs e)

{

string username = cmbUserName.Text.Trim();

string sql = string.Format("select pwd from Admin where Username='{0}'", username);

try

{

SqlCommand command = new SqlCommand(sql, DBHelper.connection);

DBHelper.connection.Open();

SqlDataReader dataReader = command.ExecuteReader();

while (dataReader.Read())

{

txtpwd.Text = (string)dataReader["pwd"];

checkBoxpwd.Checked = true;

}

}

catch

{

MessageBox.Show("数据库操作出错!");

}

finally

{

DBHelper.connection.Close();

}

}

/// summary

/// 记住密码操作

/// /summary

/// param name="sender"/param

/// param name="e"/param

private void checkBoxpwd_Enter(object sender, EventArgs e)

{

bool check = true;

check = checkinput(cmbUserName.Text.Trim());

if ((string)cmbUserName.Text.Trim() == "")

{

MessageBox.Show("请输入用户名", "输入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

cmbUserName.Focus();

}

else

{

if (txtpwd.Text.Trim() == "")

{

MessageBox.Show("请输入密码", "输入提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

txtpwd.Focus();

}

else

{

bool isValidUser = false; // 标识是否为合法用户

string message = ""; // 如果登录失败,显示的消息提示

// 如果验证通过,就显示相应的用户窗体,并将当前窗体设为不可见

if (ValidateInput())

{

// 调用用户验证方法

isValidUser = ValidateUser(cmbUserName.Text, txtpwd.Text, ref message);

// 如果是合法用户,显示相应的窗体

if (isValidUser)

{

if (check == true)

{

XmlDocument doc = new XmlDocument();

doc.Load(@"E:\面向对象--C#练习\通讯录\address list\address list\user.xml");//(@"E:\面向对象--C#练习\通讯录\address list\address list\user.xml");

XmlElement node = doc.CreateElement("user");

XmlNode xnode = (XmlNode)doc.CreateElement("username");

xnode.InnerText = cmbUserName.Text.Trim();

node.AppendChild(xnode);

doc.DocumentElement.InsertAfter(node, doc.DocumentElement.LastChild);

doc.Save(@"E:\面向对象--C#练习\通讯录\address list\address list\user.xml");

//doc.Load (@"E:\面向对象--C#练习\通讯录\address list\address list\user.xml");

}

}

// 如果登录失败,显示相应的消息

else

{

MessageBox.Show(message, "记住密码失败!", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

}

}

/// summary

/// 验证当前combox中内容是否已经存在于xml文件中

/// /summary

/// param name="text"/param

/// returns/returns

private bool checkinput(string text)

{

int count;

bool c = true;

for (count = 0; count cmbUserName.Items.Count;count ++ )

{

if (text ==(string )cmbUserName .Items [count])

{

c=false;

}

}

return c;

}

xml文件内容如下:?xml version="1.0" encoding="utf-8"?

person

user

VB点虐 中如何记住checkbox的值?使程序关闭再启动时记住checkbox最后状态。

所谓绿色软件是不需要安装就可以运行,纯粹单个文件的软件很少。存在注册表中了,简单点的如:

Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

SaveSetting(ProductName, Me.Name, "CheckBox1", CheckBox1.Checked)

End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

CheckBox1.Checked = GetSetting(ProductName, Me.Name, "CheckBox1", CheckBox1.Checked)

End Sub

VB.NET 本地保存数据

VB可以用任何格式保存文件数据不仅仅是注册表\XML\INI

甚至于未知的格式。我教你命令:

open "C:\setup.safe" for output as #1

print #1,"object"

close #1

其中setup.safe就是一个文件,后缀为.safe,当然可以改成.dat包括其他任何后缀.

object就是你要写入setup.safe的内容.

当前文章:实现记住vb点虐 的简单介绍
网站地址:https://www.cdcxhl.com/article18/ddgiegp.html

成都网站建设公司_创新互联,为您提供软件开发虚拟主机外贸建站自适应网站品牌网站建设用户体验

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设