- - PR -
RichTextBoxオブジェクト代入時の再表示について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-09 00:51
プロパティ設定済みのRichTextBoxを新しいRichTextBoxに代入しても画面に反映されないのですが、なぜでしょうか?
:動作環境 OS WinXP PRO .NET1.1 2.0 言語 C# VS2003,VS2005両方で試しました。 やってみたこと。 デバックすると、値はRichTextBox2に代入されている。 ×richTextBox2.Refresh(); 下記のコードはVS2003です。 [STAThread] static void Main() { Application.Run(new Form1()); } private void Form1_Load(object sender, System.EventArgs e) { richTextBox1.Font = new Font(richTextBox1.Font , FontStyle.Bold); } private void button1_Click(object sender, System.EventArgs e) { richTextBox2 = richTextBox1; } 参考URLでもかまいませんのでよろしくお願いします。 | ||||||||||||
|
投稿日時: 2006-07-09 02:02
その処理を行った後、インスタンスの数はいくつあると思いますか?
画面に表示されるのは当然インスタンスだけです。参照だけを渡しても増えるわけではありません。 仮に richTextBox1 の代入前にrichTextBox2 がインスタンス化されていてインスタンスが2つあっても、代入で値がコピーされるわけではありません。参照が入れ替わっているだけです。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-07-09 10:16
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemwindowsformsrichtextboxclasstexttopic.asp _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-09 10:40
>じゃんぬさん
あ、そういうことでしたか。 RichTextBox のプロパティ値を全て一気にコピーしたいのかな、と思いました。 _________________ 囚人のジレンマな日々 | ||||||||||||
|
投稿日時: 2006-07-09 10:50
ディスプレイに出力されるもの、というレベルでは、これで良いのではないかと思いました。 それと、MemberwiseClone メソッドみたいなことは、すべきじゃないと思いましたから... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-07-09 20:02
ですね。だから答えとしては「そんな事できないよー」ですね。 | ||||||||||||
|
投稿日時: 2006-07-10 13:15
囚人様、じゃんぬねっと様、早速の回答ありがとうございます。
参考URL、MemberwiseCloneを自分なりにしらべてみました。 結果、RichTextBox.Rtf プロパティを使用したいと思うのですが、2つほどわからない点が合ったのでおしえていただきたいのですが。 なぜMemberwiseClone メソッドみたいなことは、すべきじゃないのでしょうか? また、オブジェクトの参照が変更され再表示したい際に、Refreshで再表示を行うと思っていたのですが、そうではないのでしょうか? よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-07-10 13:29
調べるべきものがまちがっとると思う。
いやもうRtfをしれっと渡して適用せやええやん。なんで参照を入れ替える必要があるんかな?
MemberwiseCloneってのも値をコピーするって意味で使ってるんかな。 あんさんがその前に参照を入れ替えようとしていたことと何が違うのか理解できてるんかいな。 つか。Refreshは強制描画なんだけどね。 それゆーたらTextを変えただけでもRefresh呼ばなあかんくなるやんかww |