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

わんくま同盟

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

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

ツリー一括表示

Richtextboxの背景色変更の保存 /Visual C#初心者 (20/05/22(Fri) 01:31) #94823
Re[1]: Richtextboxの背景色変更の保存 /Hongliang (20/05/22(Fri) 01:43) #94824
  └ Re[2]: Richtextboxの背景色変更の保存 /Visual C# (20/05/22(Fri) 01:51) #94825
    └ Re[3]: Richtextboxの背景色変更の保存 /KOZ (20/05/22(Fri) 09:47) #94829
      └ Re[4]: Richtextboxの背景色変更の保存 /Visual C#初心者 (20/05/25(Mon) 00:20) #94846
        └ Re[5]: Richtextboxの背景色変更の保存 /魔界の仮面弁士 (20/05/25(Mon) 01:02) #94847
          └ Re[6]: Richtextboxの背景色変更の保存 /Visual C#初心者 (20/05/25(Mon) 23:33) #94850 解決済み


親記事 / ▼[ 94824 ]
■94823 / 親階層)  Richtextboxの背景色変更の保存
□投稿者/ Visual C#初心者 (1回)-(2020/05/22(Fri) 01:31:51)

分類:[C#] 

簡単なメモ帳アプリを作っています。

Richtextboxでのテキスト保存はsavefileメソッドで
出来ているのですが、
背景の色をデフォルトから変更した際の保存方法が
分かりません。
ご教示頂ければ幸いです。
[ □ Tree ] 返信 編集キー/

▲[ 94823 ] / ▼[ 94825 ]
■94824 / 1階層)  Re[1]: Richtextboxの背景色変更の保存
□投稿者/ Hongliang (1032回)-(2020/05/22(Fri) 01:43:39)
Windows Formsアプリケーションですか?

その背景の色というのは、どうやって設定したものでしょうか?
WinFormだと、ぱっと出てくるのはBackColorかSelectionBackColorですが。
[ 親 94823 / □ Tree ] 返信 編集キー/

▲[ 94824 ] / ▼[ 94829 ]
■94825 / 2階層)  Re[2]: Richtextboxの背景色変更の保存
□投稿者/ Visual C# (1回)-(2020/05/22(Fri) 01:51:25)
No94824 (Hongliang さん) に返信
> Windows Formsアプリケーションですか?
>
> その背景の色というのは、どうやって設定したものでしょうか?
> WinFormだと、ぱっと出てくるのはBackColorかSelectionBackColorですが。

おっしゃる通りWinFormです。
設定方法はRichtextboxをダブルクリックし、
colordialogを表示させ任意の色をBackcolor= colordialogの色
という感じです。

やりたい事はこの状態を保存して、読み込み時にテキストだけじゃなく
変更した背景色も読み込みたいということです。

[ 親 94823 / □ Tree ] 返信 編集キー/

▲[ 94825 ] / ▼[ 94846 ]
■94829 / 3階層)  Re[3]: Richtextboxの背景色変更の保存
□投稿者/ KOZ (119回)-(2020/05/22(Fri) 09:47:59)
No94825 (Visual C# さん) に返信
> やりたい事はこの状態を保存して、読み込み時にテキストだけじゃなく
> 変更した背景色も読み込みたいということです。

Color 構造体の
・ToArgb/FromArgb

ColorTranslator クラスの

・ToHtml/FromHtml
・ToOle/FromOle
・ToWin32/FromWin32

等を使って、BackColor プロパティの値を文字や数値にしてしまえば、保存や読み込みが出来ます。

あとはどういった形で外部に保存するか、仕様を決めればいいわけです。

ひとつのファイルに保存する形にするなら、SaveFile を使わず RichTextBox の RTF プロパティを使うといいと思います。

[ 親 94823 / □ Tree ] 返信 編集キー/

▲[ 94829 ] / ▼[ 94847 ]
■94846 / 4階層)  Re[4]: Richtextboxの背景色変更の保存
□投稿者/ Visual C#初心者 (3回)-(2020/05/25(Mon) 00:20:16)
No94829 (KOZ さん) に返信
> ■No94825 (Visual C# さん) に返信
>>やりたい事はこの状態を保存して、読み込み時にテキストだけじゃなく
>>変更した背景色も読み込みたいということです。
>
> Color 構造体の
> ・ToArgb/FromArgb
>
> ColorTranslator クラスの
>
> ・ToHtml/FromHtml
> ・ToOle/FromOle
> ・ToWin32/FromWin32
>
> 等を使って、BackColor プロパティの値を文字や数値にしてしまえば、保存や読み込みが出来ます。
>
> あとはどういった形で外部に保存するか、仕様を決めればいいわけです。
>
> ひとつのファイルに保存する形にするなら、SaveFile を使わず RichTextBox の RTF プロパティを使うといいと思います。
>


有難うございます。返信遅れてすみません。
なんとなく分かりましたが、RTFプロパティでの保存方法が
いまいちよく分かりません。Savefileメソッドでrtf形式で保存
するのとは異なるという事でしょうか?

調べてみたのですが、理解出来てないので
ご教示のほどお願い致します。
[ 親 94823 / □ Tree ] 返信 編集キー/

▲[ 94846 ] / ▼[ 94850 ]
■94847 / 5階層)  Re[5]: Richtextboxの背景色変更の保存
□投稿者/ 魔界の仮面弁士 (2726回)-(2020/05/25(Mon) 01:02:57)
No94846 (Visual C#初心者 さん) に返信
> なんとなく分かりましたが、RTFプロパティでの保存方法が
> いまいちよく分かりません。Savefileメソッドでrtf形式で保存
> するのとは異なるという事でしょうか?

「文書データ」としての文字背景色などであれば、
SelectionBackColor プロパティで保持するようにすれば、SaveFile メソッドだけで事足ります。

しかし、BackColor は Location や Size などと同様、
「コントロール」の情報であって、文書データごとの情報ではないため、
SaveFile した内容にはそのままでは含まれないでしょう。

そのため、文書データそのものは RTF プロパティで取り出し、
それを BackColor の情報とともに自己管理する…という手間が発生します。

同じデータファイルに両方を埋め込むのか、別々のファイルで管理するかは
ご自身の都合の用意方法で決めてください。


あるいは…文書ファイルごとに BackColor を保持しようとするのではなく、アプリ全体として
「次回起動時には、前回設定しておいた背景時を自動的に読み込ませたい」程度で構わなければ、
ApplicationSettings を使うようにすれば、ほぼコーディング無しで、
BackColor の色情報を保存しておくことができます。
https://dobon.net/vb/dotnet/programing/mysettings.html
[ 親 94823 / □ Tree ] 返信 編集キー/

▲[ 94847 ] / 返信無し
■94850 / 6階層)  Re[6]: Richtextboxの背景色変更の保存
□投稿者/ Visual C#初心者 (5回)-(2020/05/25(Mon) 23:33:21)
No94847 (魔界の仮面弁士 さん) に返信
> ■No94846 (Visual C#初心者 さん) に返信
>>なんとなく分かりましたが、RTFプロパティでの保存方法が
>>いまいちよく分かりません。Savefileメソッドでrtf形式で保存
>>するのとは異なるという事でしょうか?
>
> 「文書データ」としての文字背景色などであれば、
> SelectionBackColor プロパティで保持するようにすれば、SaveFile メソッドだけで事足ります。
>
> しかし、BackColor は Location や Size などと同様、
> 「コントロール」の情報であって、文書データごとの情報ではないため、
> SaveFile した内容にはそのままでは含まれないでしょう。
>
> そのため、文書データそのものは RTF プロパティで取り出し、
> それを BackColor の情報とともに自己管理する…という手間が発生します。
>
> 同じデータファイルに両方を埋め込むのか、別々のファイルで管理するかは
> ご自身の都合の用意方法で決めてください。
>
>
> あるいは…文書ファイルごとに BackColor を保持しようとするのではなく、アプリ全体として
> 「次回起動時には、前回設定しておいた背景時を自動的に読み込ませたい」程度で構わなければ、
> ApplicationSettings を使うようにすれば、ほぼコーディング無しで、
> BackColor の色情報を保存しておくことができます。
> https://dobon.net/vb/dotnet/programing/mysettings.html

ご丁寧にありがとうございます!
自分で考えていろいろ試してみたいと思います.
これにてクローズさせていただきます.
解決済み
[ 親 94823 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -