我有一个VS解决方案,其中有几个项目。例如,其中一个标题为“管理”。另一个标题为“运行时”'
如果我将Management设置为默认项目并运行它,则会打开一个名为Scout的应用程序。如果我将Runtime设置为默认项目并运行它,则会打开一个名为PM的应用程序。 需要使用登录表单,我的要求是,必须为两个项目使用相同的登录表单,我必须在名为Data的新项目下创建登录表单,其中可供其他项目使用(运行时和管理) )
我的疑问是,在运行程序时,我需要找出默认运行的项目,然后使用一些动态更新的控件加载登录表单(例如,如果首先执行Runtime proj,则登录表单应具有一个标签"欢迎来到Runtime")如果管理项目首先被执行,登录表格应该有一个标签"欢迎来到管理"
我如何实现这一目标?
答案 0 :(得分:2)
我认为重用Form
是可能的。
首先,像这样创建您的登录表单。
(也许你应该在DLL中创建它,以便在不同的项目中重用它。)
public partial class LoginForm : Form
{
//This constructor should only be called by the Designer.
public LoginForm()
{
InitializeComponent();
}
public LoginForm(string title) : this()
{
TitleLabel.Text = title;
}
public Tuple<string, string> Login()
{
if (this.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
return new Tuple<string, string>(Username.Text, Password.Text);
}
else
{
return default(Tuple<string, string>);
}
}
private void OKButton_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void CancelButton_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
}
}
然后在不同场景中使用它:
var details = new LoginForm("Title here").Login();
if (details.Item1 == "username" && details.Item2 == "Password")
{
//logged in.
}