Я работаю в Silverlight и создал дочернее окно, в котором у меня есть имя пользователя и пароль.
private void OKButton_Click(object sender, RoutedEventArgs e)
{
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
this.DialogResult = true;
}
else
{
MessageBox.Show("Incorrect username and/orpassword","Error",MessageBoxButton.OK);
}
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
И после того, как у меня есть моя главная страница, которая содержит весь графический интерфейс проекта. Вот так: (Здесь также попробуйте открыть ChildWindow, но это не так, но когда я помещаю MessageBox.Show("Hello"); затем он всплывает)
public partial class MainPage : UserControl
{
public MainPage()
{
loginChildWindow obj = new loginChildWindow();
obj.Show(); //It do not pop up actually
MessageBox.Show("hello"); //whereas thsi messagebox popups
InitializeComponent();
}
}
Поэтому, чтобы установить логин ChildWindow во время запуска моего проекта, я думаю, что должен сделать InitializeComponent();
, только если мой пароль и имя пользователя совпадают. поэтому этот InitializeComponent(); должен вызываться внутри
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
InitializeComponent();
}
Но когда я это сделаю, это выдаст ошибку (очевидно, что я не могу сделать это в конструкторе):
public partial MainPage : UserControl
{
{
public MainPage()
{
private void OKButton_Click(object sender, RoutedEventArgs e)
{
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
this.DialogResult = true;
InitializeComponent();
}
else
{
MessageBox.Show("Incorrect username and/orpassword","Error",MessageBoxButton.OK);
}
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
}
Но как решить это мой вопрос?
ИЗМЕНИТЬ ПОСЛЕ комментариев пользователя 1: два класса:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
Loaded += MainPage_Loaded;
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Visibility = Visibility.Collapsed;
loginChildWindow log = new loginChildWindow();
log.Show();
}
}
и
public partial class loginChildWindow : ChildWindow
{
public loginChildWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (txtUsrname.Text == "Username" && txtPassword.Password == "Password")
{
MainPage obj = new MainPage();
obj.Visibility = Visibility.Visible;
obj.InitializeComponent();
this.DialogResult = true;
}
else
{
MessageBox.Show("Incorrect username and/orpassword", "Error", MessageBoxButton.OK);
}
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
private void Login_Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
}
}