- PR -

RichTextBoxオブジェクト代入時の再表示について

投稿者投稿内容
れいずん
会議室デビュー日: 2005/11/11
投稿数: 15
投稿日時: 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でもかまいませんのでよろしくお願いします。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-09 02:02
その処理を行った後、インスタンスの数はいくつあると思いますか?
画面に表示されるのは当然インスタンスだけです。参照だけを渡しても増えるわけではありません。

仮に richTextBox1 の代入前にrichTextBox2 がインスタンス化されていてインスタンスが2つあっても、代入で値がコピーされるわけではありません。参照が入れ替わっているだけです。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-09 10:16
引用:

れいずんさんの書き込み (2006-07-09 00:51) より:

新しいRichTextBoxに代入しても画面に反映されないのですが、
(snip)
参考URLでもかまいませんのでよろしくお願いします。


http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemwindowsformsrichtextboxclasstexttopic.asp

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-09 10:40
>じゃんぬさん

あ、そういうことでしたか。
RichTextBox のプロパティ値を全て一気にコピーしたいのかな、と思いました。
_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-09 10:50
引用:

囚人さんの書き込み (2006-07-09 10:40) より:

あ、そういうことでしたか。
RichTextBox のプロパティ値を全て一気にコピーしたいのかな、と思いました。


ディスプレイに出力されるもの、というレベルでは、これで良いのではないかと思いました。
それと、MemberwiseClone メソッドみたいなことは、すべきじゃないと思いましたから...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-07-09 20:02
引用:

それと、MemberwiseClone メソッドみたいなことは、すべきじゃないと思いましたから...


ですね。だから答えとしては「そんな事できないよー」ですね。
れいずん
会議室デビュー日: 2005/11/11
投稿数: 15
投稿日時: 2006-07-10 13:15
囚人様、じゃんぬねっと様、早速の回答ありがとうございます。

参考URL、MemberwiseCloneを自分なりにしらべてみました。
結果、RichTextBox.Rtf プロパティを使用したいと思うのですが、2つほどわからない点が合ったのでおしえていただきたいのですが。
なぜMemberwiseClone メソッドみたいなことは、すべきじゃないのでしょうか?
また、オブジェクトの参照が変更され再表示したい際に、Refreshで再表示を行うと思っていたのですが、そうではないのでしょうか?

よろしくお願いいたします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-10 13:29
引用:

れいずんさんの書き込み (2006-07-10 13:15) より:
参考URL、MemberwiseCloneを自分なりにしらべてみました。


調べるべきものがまちがっとると思う。
引用:

結果、RichTextBox.Rtf プロパティを使用したいと思うのですが、2つほどわからない点が合ったのでおしえていただきたいのですが。


いやもうRtfをしれっと渡して適用せやええやん。なんで参照を入れ替える必要があるんかな?
引用:

なぜMemberwiseClone メソッドみたいなことは、すべきじゃないのでしょうか?
また、オブジェクトの参照が変更され再表示したい際に、Refreshで再表示を行うと思っていたのですが、そうではないのでしょうか?


MemberwiseCloneってのも値をコピーするって意味で使ってるんかな。
あんさんがその前に参照を入れ替えようとしていたことと何が違うのか理解できてるんかいな。
つか。Refreshは強制描画なんだけどね。
それゆーたらTextを変えただけでもRefresh呼ばなあかんくなるやんかww

スキルアップ/キャリアアップ(JOB@IT)