在不同网段安装C# WINFORM程序(ClickOnce发布),安装时提示下载未成功,请问如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在不同网段安装C# WINFORM程序(ClickOnce发布),安装时提示下载未成功,请问如何解决?相关的知识,希望对你有一定的参考价值。

参考技术A 是防火墙的问题,需要设置发布机上的防护墙,你可以先关闭防火墙试试 参考技术B 没懂,这不是网络问题吗

WinForm 设计 C# 了解的请来一下 关于登陆界面.

记得很久之前要用C#做个需要登录的小东西,自己之前完全没有编写WinForm的经验,整个过程中,自己感觉应该怎么写就怎么写,时常导致许多逻辑性的错误,比如在做这个登录窗口的时候,应该实现的效果是,用户启动程序,首先显示登录窗口,由用户输入用户名和密码等登录信息,然后如果点击登录按钮则验证用户名和密码的正确性,如正确则调出程序主窗口,如果点击取消按钮则关闭程序,自己第一次的时候首先设计了个登录窗口LoginForm,两个按钮CancelButton和OKButton,然后分别添加各自的Click事件,OKButton的Click事件中验证用户信息的正确性,并返回验证结果,如果正确就new一个主窗口MainForm,这个时候程序的主函数Main中要这样写:Application.run(new LoginForm());这样最后导致的结果就是感觉所有的事情都要LoginForm去做,导致它过于臃肿,本来我们的重心应该在MainForm中的;下面的做法就很好的避免了这个逻辑错误;
第一步:设计一个登录窗口LoginForm,内含两个按钮CancelButton和OKButton,还有具体的内容输入框,如textBoxID和textBoxPassword,另设相对应的类成员用来接受输入框中的内容,如UserName和PassWord,只需要添加OKButton的Click事件,如下:
private void OKButton_Click(object sender, EventArgs e)

PassWord = textBoxPassword.Text;
UserName = textBoxID.Text;

还要在LoginForm.Designer.cs的InitializeComponent方法中添加两者的属性,分别为:
this.OKButton.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
这样LoginForm就完事了,怎么样,这样的话LoginForm够简洁吧。。。。。
第二步:设计主窗口,这才是我们工作的重心,怎么做看具体情况,这里就不讨论了,这里只说下和上面登录窗口相关联的部分,我们只需要在MainForm的MainForm_Load方法中写下如下代码即可:
private void MainForm_Load(object sender, EventArgs e)

LoginForm formLogin = new LoginForm();
if(formLogin.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)

string userName = formLogin.UserName;
string password = formLogin.PassWord;
formLogin.Dispose();

else

formLogin.Dispose();
this.Dispose();



就这样就基本可以了,注意这里是用到了模式化窗口的方法ShowDilog,参数this表示MainForm是LoginForm的父窗口,这里就用到ShowDilog的返回值,就是上面设置的两个按钮的DialogResult属性。
总之,感觉这才是真正的登录类窗口设计的正统方法,我才掌握,真是太羞愧了。

参考这个写的,登陆连接数据库的逻辑判断应该写在那部分呀?
我问这样子的代码,登陆验证的判断应该写在那里. 以上长篇摘自网络.

后面那个写法其实也不完全对(而且安全问题很大,用一些小软件可以绕过这个登录窗口的),另外它的验证过程也是要放在frmLogin中的,也就是当点击登录上的确定,验证通过后,才会做
this.DialogResult = DialogResult.OK;
this.Close();

正确的方法应该是这样的,更改Program.cs ,将原本的主窗体初始化显示代码改成这样

frmLogin login = new frmLogin();
login.ShowDialog();
if (login.DialogResult.Equals(DialogResult.OK)) //登陆成功才显示主窗口

Application.Run(new MainForm());

在这种方法中,验证同样是通过frmLogin来进行的,当然你可以把验证的过程放在一个公用类中,比如是DataHelper.CheckUser(usr, pwd)
用的时候在frmLogin中检测的时候可能就直接是
if(DataHelper.CheckUser(usr, pwd)) //验证通过

this.DialogResult = DialogResult.OK;
this.Close();
追问

站内信您了,希望能帮帮忙~3Q

参考技术A 另外写一个验证的方法,然后在登陆按钮的确定按钮里面调用。 参考技术B 写了这么多?不过还是亲自运行你的工程才好讲。可以百度hi我,这里说多麻烦啊。 参考技术C 上网随便搜一下C#的连库代码 。你连库想干什么,就写道什么的前边 参考技术D 没看明白的请支持!@

以上是关于在不同网段安装C# WINFORM程序(ClickOnce发布),安装时提示下载未成功,请问如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

C#的winform的menuItem事件问题

c# OpenFileDialog 退出

C# Winform多窗口间切换

C# winform程序,怎么实现菜单的功能?

在C# winform 程序里设置 DataGrid 为只读属性。

c#控件 winform怎么使用