| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | «  : 02-03-2012 18:12 »  |  | 
 
 Привет.
 В диалоговом окне 1 (Forms) нажимается кнопка и открывается диалоговое окно 2 (WPF). В textbox’e окна 2 вводится какой-то текст. Затем нажимается кнопка в окне 2 и текст из этого окна должен попадать в переменную окна 1.
 Как это можно сделать?
 
 Заранее благодарю.
 
 
 Добавлено через 4 дня, 12 минут и 20 секунд:
 Привет.
 
 В диалоговом окне 1 (Forms) нажимается кнопка и открывается диалоговое окно 2 (Forms). В editbox’e окна 2 вводится какой-то текст. Затем нажимается кнопка в окне 2 и текст из этого окна должен попадать в переменную окна 1.
 Как это можно сделать?
 
 Заранее благодарю.
 
 |  
						| 
								|  |  
								| « Последнее редактирование: 06-03-2012 18:24 от Gor » |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #1 : 06-03-2012 18:43 »  |  | 
 
 Gor, ты бы хоть XAML и C# код форм привёл. Кто ж тебя знает, как у тебя классы форм связаны друг с другом. |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #2 : 12-03-2012 17:07 »  |  | 
 
 Привет! public partial class Form_panels_user : Form {
 ...........................................
 //Так вызывается XAML – файл Scheme_name.xaml
 private void button_scheme_name_Click(object sender, EventArgs e)
 {
 Scheme_name s_name = new Scheme_name();
 s_name.ShowDialog();
 }
 ……………………………………………………………………………………………………………………
 }
 
 //Это Scheme_name.xaml.cs
 public partial class Scheme_name : Window
 {
 public Scheme_name()
 {
 InitializeComponent();
 }
 
 private void button_ok_Click(object sender, RoutedEventArgs e)
 {
 ///В ДАННОМ СОБЫТИИ (ПО НАЖАТИЮ ЭТОЙ КНОПКИ) ИЗ EDITBOXA ЭТОГО ОКНА ИНФОРМАЦИЯ (НАПРИМЕР, КАКОЕ-ТО СЛОВО) ДОЛЖНА ПОПАДАТЬ ОБРАТНО В ПЕРЕМЕННУЮ КЛАССА Form_panels_user
 }
 }
 
 //Например сюда
 
 private void Form_panels_user_Load(object sender, EventArgs e)
 {
 FileStream fin;
 fin = new FileStream("DOS.xml", FileMode.OpenOrCreate);
 long l_fin = fin.Length;
 fin.Close();
 
 if (l_fin == 0)
 {
 //Записываем в "DOS.xml"
 XNamespace tp = "http://www.novo.ru/" + ПЕРЕМЕННАЯ; //пространство имен
 ......................................
 
 }
 
 }
 Извините, за возможно убогое объяснение.Добавлено через 1 день, 32 минуты и 35 секунд: Или что - нибудь в общем виде. Т.е. из окна которое закрывается информация в окно из которого оно открывалось. |  
						| 
								|  |  
								| « Последнее редактирование: 13-03-2012 17:57 от Gor » |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #3 : 14-03-2012 05:58 »  |  | 
 
 Gor, XAML-код где? |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #4 : 15-03-2012 17:44 »  |  | 
 
 Привет. Спасибо, что откликнулся!  XAML-код: <Window x:Class="ESInEI.Scheme_name"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Title="Название схемы"
 Height="135"
 Width="250">
 <Grid>
 <Grid.RowDefinitions>
 <RowDefinition Height="auto" />
 <RowDefinition Height="auto" />
 </Grid.RowDefinitions>
 <GroupBox Header="Введите название схемы: "
 Background="AliceBlue">
 <TextBox x:Name="name_scheme"
 KeyUp="name_KeyUp"
 VerticalAlignment="Top"
 Margin="0,20,0,10"
 Height="23"
 Width="200" />
 </GroupBox>
 <GroupBox Grid.Row="1"
 Background="AliceBlue">
 <StackPanel Orientation="Horizontal">
 <Button x:Name="button_ok"
 Content="Да"
 Click="button_ok_Click"
 Margin="10,0,0,0"
 VerticalAlignment="Bottom"
 Height="23"
 Width="75">
 </Button>
 <Button x:Name="button_cancel"
 Content="Отмена"
 Click="button_cancel_Click"
 Margin="50,0,0,0"
 VerticalAlignment="Bottom"
 Height="23"
 Width="75">
 </Button>
 </StackPanel>
 </GroupBox>
 </Grid>
 </Window>
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #5 : 16-03-2012 06:26 »  |  | 
 
 Gor, раз ShowDialog, то вообще всё просто. В классе Scheme_name заводишь public свойство строковое, привязанное к строковой переменной. В обработчике нажатия на Ok в строковую переменную записываешь содержимое текст-бокса. В другом классе сразу после ShowDialog, проверив, что ShowDialog вернул Ok, а не Cancel, читаешь строковое свойство из sheme_name и дальше делаешь с его значением всё, что тебе нужно. |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #6 : 16-03-2012 18:12 »  |  | 
 
 Спасибо, друг. Получилось.  Вот только с проверкой, что ShowDialog вернул Ok, а не Cancel что-то не понятное. Работаю без неё, а это не правильно. Написал так:  //Так вызывается XAML – файл Scheme_name.xamlprivate void button_scheme_name_Click(object sender, EventArgs e)
 {
 Scheme_name s_name = new Scheme_name();
 s_name.ShowDialog();
 
 if (ShowDialog() == DialogResult.OK)
 {
 nm_scm = s_name.sch_nm;
 }
 }
 Выдает ошибку на строку  if (ShowDialog() == DialogResult.OK) : "Форму, уже отображенную, нельзя отобразить как модальное диалоговое окно. Установите свойство видимости данной формы равным false перед вызовом showDialog". Как победить её не подскажешь? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Вад | 
								|  | « Ответ #7 : 16-03-2012 18:26 »  |  | 
 
 Я не совсем спец, но подозреваю, делать надо так: //Так вызывается XAML – файл Scheme_name.xamlprivate void button_scheme_name_Click(object sender, EventArgs e)
 {
 Scheme_name s_name = new Scheme_name();
 
 if (s_name.ShowDialog() == DialogResult.OK)
 {
 nm_scm = s_name.sch_nm;
 }
 }
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #8 : 16-03-2012 19:57 »  |  | 
 
 Чтобы ShowDialog вернул, что надо, надо в диалоге указать, что кнопки "OK" и "Отмена" - это не простые кнопки, а кнопки диалога с определёнными значениями. |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #9 : 17-03-2012 11:41 »  |  | 
 
 Да Вад, я именно это и имел ввиду, просто описался. И выдает ту ошубку, что писал ранее. Разумеется if (s_name.ShowDialog() == DialogResult.OK)..., а не просто ...ShowDialog()...
 Извиняюсь, Dimka. Как это сделать?
 |  
						| 
								|  |  
								| « Последнее редактирование: 17-03-2012 11:46 от Gor » |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #10 : 17-03-2012 12:01 »  |  | 
 
 Gor, свойства окна посмотри в дизайнере. |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #11 : 17-03-2012 12:38 »  |  | 
 
 Присваивание DialogResult.OK не работает. Может потому что, класс Scheme_name производный от Window, а не Form. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dimka 
								ДеятельКоманда клуба    Offline 
								Пол:    | 
								|  | « Ответ #12 : 17-03-2012 13:32 »  |  | 
 
 Gor, глянул в MSDN, чего и тебе желаю.
 Во-первых, в WPF, в отличие от Forms, свойства не в форме, а в кнопках. IsCancel, IsDefault и т.д. Их можно установить в XAML.
 
 Во-вторых, в WPF DialogResult - это Nullable<bool> тип, а не enum. Соответственно и DialogResult.OK не присваивается. Нужно либо true, либо false, либо null.
 
 Класс Form - это из другой оперы.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Программировать - значит понимать (К. Нюгард)Невывернутое лучше, чем вправленное (М. Аврелий)
 Многие готовы скорее умереть, чем подумать (Б. Рассел)
 |  |  | 
	| 
			| 
					
						| Gor 
								Постоялец    Offline | 
								|  | « Ответ #13 :  17-03-2012 17:10 »   |  | 
 
 Да. Все так. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |