C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: WPFとFormの連携


(過去ログ 64 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■36762 / inTopicNo.1)  WPFとFormの連携
  
□投稿者/ マイロン (1回)-(2009/06/05(Fri) 00:27:53)

分類:[.NET 全般] 

VS2008-C#で開発しています。
FormのtextBox1のテキストを、WPFのtextBox2に転記したいと考えています。

WPFからFormを開くため、
InitializeComponent();
Form1.Fom1 form = new Form1.Fom1();
form.Show();
と書いてあります。

FormにtextBox1、WPFにtextBox2を配置し、
Formのボタンに、
WpfApplication1.Window1 wpf = new WpfApplication1.Window1();
wpf.textBox2.Text = textBox1.Text;
としてみました。


ボタンを押しても送信されず、新しいFromのウィンドウが開きます。
Formに書いた処理は、テキストボックスに文字を書くのではなく、
WPFのウィンドウを開く処理をしているようです。

ということで、
WpfApplication1.Window1 text = new WpfApplication1.Window1();
text.textBox2.Text = textBox1.Text;
が間違えているようなのです。

FormのtextBox1のテキストを、WPFのtextBox2に転記したいときの処理の方法をご教示ください。

引用返信 編集キー/
■36768 / inTopicNo.2)  Re[1]: WPFとFormの連携
□投稿者/ かずき (36回)-(2009/06/05(Fri) 06:50:25)
かずき さんの Web サイト
両方がWindowsFormの時はうまくいってるんですか?
両方がWindowsFormのときと同じような感じでやればいいと思います。
引用返信 編集キー/
■36773 / inTopicNo.3)  Re[2]: WPFとFormの連携
□投稿者/ うつせみ(虚蝉) (82回)-(2009/06/05(Fri) 09:08:28)
かずきさんがおっしゃっているように、Formとやり方は変わらないような。

WpfApplication1.Window1 wpf = new WpfApplication1.Window1(textBox1.Text);
こんな感じで動くようにするかなぁ。。。タブン
引用返信 編集キー/
■36780 / inTopicNo.4)  Re[3]: WPFとFormの連携
□投稿者/ 囚人 (366回)-(2009/06/05(Fri) 11:03:44)
WPF とか Form とか関係なくて、単にインスタンスが別物になってます。

・Window1 のコード
InitializeComponent();
Form1.Fom1 form = new Form1.Fom1();
from.Window = this;
form.Show();

・Fomr1 のコード
this.Window.textBox2.Text = textBox1.Text;

みたいな風にやったらどうです。
引用返信 編集キー/
■36796 / inTopicNo.5)  Re[4]: WPFとFormの連携
□投稿者/ マイロン (2回)-(2009/06/05(Fri) 12:55:03)
みなさん、ご回答ありがとうございます。

両方がFormのときはうまくいっています。
現状、試行錯誤で次のようにしてみました。

WPF側
public void setText()
{
//textBox1.Text = Properties.Settings.Default.message.ToString();
//MessageBox.Show(Properties.Settings.Default.message.ToString());
textBox1.Text = Properties.Settings.Default.message.ToString();
//textBox1.Text = System.IO.File.ReadAllText(@"tmp.txt");
//MessageBox.Show(textBox1.Text);
//MessageBox.Show("aaa");
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
WpfApplication1.Form1 form = new WpfApplication1.Form1();
//form.Window = this;
//これはform? from? fromはないといわれるし、formはWindowの定義が含まれていないとエラーになります。
form.Show();

}

Form1側
string testmessage = "test";
WpfApplication1.Window1 wpf = new WpfApplication1.Window1();
//wpf.toText(testmessage); //だめ。WPFのtexbBox1に表示されない。
//File.AppendAllText(@"tmp.txt",testmessage); //だめ。WPFのtexbBox1に表示されない。
//Properties.Settings.Default.message = testmessage;//だめ。WPFのtexbBox1に表示されない。
//wpf.setText();//だめ。WPFのtexbBox1に表示されない。
wpf.textBox1.Text = testmessage;//だめ。WPFのtexbBox1に表示されない。

と、プロパティと、ファイル読み書きと、いろいろ試しましたが、いずれも失敗しました。

ただし、//をはずしたときは、setText()を実行するとWPFのMessageBoxは表示されます。
ということは、setText()の処理は行われているようです。
さらに、WPF側にボタンを配置して、ボタンを押したときに、
textBox1.Text = Properties.Settings.Default.message.ToString();
すると、きちんと表示されます。
とすると、メッセージは伝わっていても、表示/再表示に問題が起きているのかも。

もしそうだとすると、強制的に再表示すればよいのでしょうか????

引用返信 編集キー/
■36800 / inTopicNo.6)  Re[5]: WPFとFormの連携
□投稿者/ うつせみ(虚蝉) (83回)-(2009/06/05(Fri) 14:05:42)
2009/06/05(Fri) 14:12:24 編集(投稿者)
2009/06/05(Fri) 14:12:21 編集(投稿者)

って間違ってたのでいったん消しますorz
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -