Использование одной формы для другого сценария в форме окна - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть решение VS, где есть несколько проектов.Например, один из них называется «Управление», а другой - «Время выполнения»

Если я выберу «Управление» в качестве проекта по умолчанию и запусту его, откроется приложение под названием «Разведчик».Если я установлю Runtime в качестве проекта по умолчанию и запусту его, откроется приложение под названием PM.Существует требование использовать форму входа в систему, и мое требование заключается в том, чтобы для обоих проектов использовалась одна и та же форма входа в систему, и я должен создать форму входа в систему для нового проекта под названием «Данные», где она будет доступна для использования другими проектами (среда выполнения и управление).)

Я сомневаюсь, что при запуске программы мне нужно выяснить, какой проект работает по умолчанию, а затем загрузить форму входа в систему с некоторыми динамически обновляемыми элементами управления (например, если сначала выполняется Runtime proj,Форма входа должна иметь метку «Welcome to Runtime»), и если Proj Management выполняется первым, форма входа должна иметь метку «Welcome to Management»

Как мне этого добиться?

1 Ответ

2 голосов
/ 10 ноября 2011

Я думаю, что возможно повторное использование 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.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...