C # открытие одного окна нажатием кнопки другого окна - PullRequest
0 голосов
/ 21 ноября 2011

В MainWindow.xaml.cs я хочу открыть другое окно. Мой код такой:

WordToHtml.Window1 newForm = new WordToHtml.Window1();
newForm.Show();
return newForm.imagePath;

В Window1.xaml у меня есть метка, кнопка и текстовое поле. Я хочу, чтобы пользователь нажал на кнопку, а затем я прочитал содержимое из текстового поля. Однако, когда точка останова приходит к newForm.Show ();, Window1 показывается, но его не видно. У него нет метки / кнопки и т. Д. Это код Window1:

string imagePath;
public Window1() {
    InitializeComponent();
    label1.Content = @"Please enter path";
}
void button1_Click(object sender, RoutedEventArgs e) {
    //this is never entered because I can't see the button
}
public string newImagePath(string imagePath) {
    return imagePath;
}

1 Ответ

1 голос
/ 21 ноября 2011

Фрагмент кода, который вы показываете, не проясняет некоторые вопросы.Я указываю на свою путаницу и вопросы.

1).Я предполагаю, что когда пользователь нажимает на какую-то кнопку в MainWindow, новые окна должны открывать «Window1», где есть метка, кнопка и текстовое поле.затем пользователь вводит некоторый путь в текстовое поле и нажимает на кнопку, которую должно закрыть window1, и путь к изображению должен быть доступен в форме «MainWindow».Пожалуйста, поправьте меня, если я ошибаюсь.

2).В этом фрагменте кода

  WordToHtml.Window1 newForm = new WordToHtml.Window1();
    newForm.Show();
    return newForm.imagePath;

Вы не получите ничего по адресу "newForm.imagePath", ни по пустой, ни по пустой строке, поскольку вы пытаетесь получить к нему доступ, прежде чем пользователь введет какое-либо значение в текстовое поле.

3).Использование метода «SomeForm.Show ()» откроет новую форму, которая не является модальным диалоговым окном, это означает, что пользователь все еще может получить фокус «MainWindow» или нажать кнопку (из которой открывается новое окно Window1).Я предлагаю использовать окно «newForm.ShowDialog ()», которое возвращает фокус родительским окнам только тогда, когда оно закрыто.

4).Вы должны использовать событие

newForm.Closing, чтобы получить ссылку на новую форму, и до ее закрытия вы можете найти элемент управления textbox

string imagePath  = (newForm.FindName("nameOfTextBox") as TextBox).Content.ToString();

и получить путь к изображению в MainWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...