C# winForm窗体程序 锁定问题求赐教。
如图,我想在运行时让人输入密码才能打开程序。不用联网的。给点示例代码及提示。1,初始化运行时在后台。2,再次双击时弹出如图的输入密码程序。3,验证密码正确后打开程序。希望...
如图,我想在运行时让人输入密码才能打开程序。不用联网的。
给点示例代码及提示。
1,初始化运行时在后台。
2,再次双击时弹出如图的输入密码程序。
3,验证密码正确后打开程序。
希望高手帮忙。
如果成功再给分。不然没人回答我的分就回不来咯。赐教。
如果把这个快捷方式换成文件夹是不是也可以验证呢?求赐教。 展开
给点示例代码及提示。
1,初始化运行时在后台。
2,再次双击时弹出如图的输入密码程序。
3,验证密码正确后打开程序。
希望高手帮忙。
如果成功再给分。不然没人回答我的分就回不来咯。赐教。
如果把这个快捷方式换成文件夹是不是也可以验证呢?求赐教。 展开
3个回答
展开全部
初始化就最小化:
加个notifyIcon1到窗体,加载时候窗体就最小化:
双击事件:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.Visible == false || this.WindowState == FormWindowState.Minimized)
{
//输入塌颤密码验证,比可以新建一个窗体弹出来验证,我这是一个类生成的窗体验证
bool res = Dialogs.ShowInputBox("权限验证", "请输入验证密码:", "", '*', out inputText)
if(res){//验证正确
normalForm();
}else{ //验证失败
messagebox.show("验数衫橘证失败");
}
else
{
this.Visible = false;
}
}
private void normalForm()
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
新建一个类:类名为Dialogs:
public static bool ShowInputBox(string Caption, string Tip, string DefaultText, char PasswordChar, out string inputText)
{
Form fm = new Form();
Label lTip = new Label();
TextBox tbInput = new TextBox();
Button btnOK = new Button();
Button btnCancel = new Button();
fm.SuspendLayout();
//Label
lTip.AutoSize = true;
lTip.Location = new System.Drawing.Point(13, 13);
lTip.Size = new System.Drawing.Size(89, 12);
lTip.TabIndex = 0;
lTip.Text = Tip;
/薯团/输入框
tbInput.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom;
tbInput.Location = new System.Drawing.Point(15, 29);
tbInput.Multiline = true;
tbInput.PasswordChar = PasswordChar;
tbInput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
tbInput.Size = new System.Drawing.Size(295, 21);
tbInput.TabIndex = 1;
tbInput.Text = DefaultText;
// btnOK
btnOK.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
btnOK.Location = new System.Drawing.Point(139, 67);
btnOK.Size = new System.Drawing.Size(75, 23);
btnOK.TabIndex = 2;
btnOK.Text = "确定";
btnOK.UseVisualStyleBackColor = true;
//btnOK.Click += new EventHandler(btnOK_Click);
// btnCancel
btnCancel.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
btnCancel.Location = new System.Drawing.Point(220, 67);
btnCancel.Size = new System.Drawing.Size(75, 23);
btnCancel.TabIndex = 3;
btnCancel.Text = "取消";
btnCancel.UseVisualStyleBackColor = true;
// 窗体
fm.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
fm.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
fm.ClientSize = new System.Drawing.Size(322, 102);
fm.ControlBox = false;
fm.Controls.Add(btnCancel);
fm.Controls.Add(btnOK);
fm.Controls.Add(tbInput);
fm.Controls.Add(lTip);
fm.MaximizeBox = false;
fm.MinimizeBox = false;
fm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
fm.Text = Caption;
fm.ResumeLayout(false);
fm.PerformLayout();
fm.AcceptButton = btnOK;
fm.CancelButton = btnCancel;
tbInput.SelectAll();
tbInput.Focus();
DialogResult dr = fm.ShowDialog();
if (dr == DialogResult.OK)
{
inputText = tbInput.Text;
return true;
}
inputText = "";
return false;
我的根你差不多,只不过就一个输入框和确定按钮。
加个notifyIcon1到窗体,加载时候窗体就最小化:
双击事件:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (this.Visible == false || this.WindowState == FormWindowState.Minimized)
{
//输入塌颤密码验证,比可以新建一个窗体弹出来验证,我这是一个类生成的窗体验证
bool res = Dialogs.ShowInputBox("权限验证", "请输入验证密码:", "", '*', out inputText)
if(res){//验证正确
normalForm();
}else{ //验证失败
messagebox.show("验数衫橘证失败");
}
else
{
this.Visible = false;
}
}
private void normalForm()
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
新建一个类:类名为Dialogs:
public static bool ShowInputBox(string Caption, string Tip, string DefaultText, char PasswordChar, out string inputText)
{
Form fm = new Form();
Label lTip = new Label();
TextBox tbInput = new TextBox();
Button btnOK = new Button();
Button btnCancel = new Button();
fm.SuspendLayout();
//Label
lTip.AutoSize = true;
lTip.Location = new System.Drawing.Point(13, 13);
lTip.Size = new System.Drawing.Size(89, 12);
lTip.TabIndex = 0;
lTip.Text = Tip;
/薯团/输入框
tbInput.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom;
tbInput.Location = new System.Drawing.Point(15, 29);
tbInput.Multiline = true;
tbInput.PasswordChar = PasswordChar;
tbInput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
tbInput.Size = new System.Drawing.Size(295, 21);
tbInput.TabIndex = 1;
tbInput.Text = DefaultText;
// btnOK
btnOK.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
btnOK.Location = new System.Drawing.Point(139, 67);
btnOK.Size = new System.Drawing.Size(75, 23);
btnOK.TabIndex = 2;
btnOK.Text = "确定";
btnOK.UseVisualStyleBackColor = true;
//btnOK.Click += new EventHandler(btnOK_Click);
// btnCancel
btnCancel.Anchor = AnchorStyles.Right | AnchorStyles.Bottom;
btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
btnCancel.Location = new System.Drawing.Point(220, 67);
btnCancel.Size = new System.Drawing.Size(75, 23);
btnCancel.TabIndex = 3;
btnCancel.Text = "取消";
btnCancel.UseVisualStyleBackColor = true;
// 窗体
fm.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
fm.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
fm.ClientSize = new System.Drawing.Size(322, 102);
fm.ControlBox = false;
fm.Controls.Add(btnCancel);
fm.Controls.Add(btnOK);
fm.Controls.Add(tbInput);
fm.Controls.Add(lTip);
fm.MaximizeBox = false;
fm.MinimizeBox = false;
fm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
fm.Text = Caption;
fm.ResumeLayout(false);
fm.PerformLayout();
fm.AcceptButton = btnOK;
fm.CancelButton = btnCancel;
tbInput.SelectAll();
tbInput.Focus();
DialogResult dr = fm.ShowDialog();
if (dr == DialogResult.OK)
{
inputText = tbInput.Text;
return true;
}
inputText = "";
return false;
我的根你差不多,只不过就一个输入框和确定按钮。
展开全部
在主窗体显示之前加一个密码验证窗体
如果密码验证成功,主窗体显示,密码验证窗体隐藏
如果密码验证成功,主窗体显示,密码验证窗体隐藏
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Login l = new login(0);
l.ShowDialog();
if (l.DialogResult == DialogResult.OK)
{
Application.Run(new Main());
}
}
Login.cs
private void button1_Click(object sender, EventArgs e)
{
//判断密码正确性
if (textBox1.Text.Length > 0)
{
this.DialogResult = DialogResult.OK;
}
}
//Login 是登录窗体
判断密码正确后this.DialogResult = DialogResult.OK一下就会激活MAIN窗体
//Main 是主程序窗体
登录后才启动主程序窗体,还可以省资源,如果要一开毁哗始就把Main放后台,可以吧Main先纤缓行隐藏起哪高来 this.Hide()
等验证通过后再this.Show()
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Login l = new login(0);
l.ShowDialog();
if (l.DialogResult == DialogResult.OK)
{
Application.Run(new Main());
}
}
Login.cs
private void button1_Click(object sender, EventArgs e)
{
//判断密码正确性
if (textBox1.Text.Length > 0)
{
this.DialogResult = DialogResult.OK;
}
}
//Login 是登录窗体
判断密码正确后this.DialogResult = DialogResult.OK一下就会激活MAIN窗体
//Main 是主程序窗体
登录后才启动主程序窗体,还可以省资源,如果要一开毁哗始就把Main放后台,可以吧Main先纤缓行隐藏起哪高来 this.Hide()
等验证通过后再this.Show()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询