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

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

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

Re[3]: ラベル等の文字の一部の背景色を変更


(過去ログ 111 を表示中)

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

■66072 / inTopicNo.1)  ラベル等の文字の一部の背景色を変更
  
□投稿者/ サワー (1回)-(2013/03/29(Fri) 18:04:16)

分類:[VB.NET/VB2005 以降] 

こんにちは。
ラベルなどのテキストが表示されるコントロールで、文字の一部分の背景色を変更したいと考えています。
例えば、ラベルに「あいうえお」とあった場合、「う」の部分の背景色のみを黄色にしたいです。
どうやらオーナードローを使えばいいようなのですが、具体的にどのようなことを行うのでしょうか?

1.「う」の位置だけ背景色で塗りつぶし、その後で「う」をDrawStringで再描画する?
2.「あい」「う」「えお」をすべて再描画する?

1.の場合、どうやって「う」の位置を見つければいいのか分かりません。
2.の場合、「あい」と「う」の間隔をどう決めればいいか分かりません。

何卒よろしくお願いします。
(VB2008)
引用返信 編集キー/
■66073 / inTopicNo.2)  Re[1]: ラベル等の文字の一部の背景色を変更
□投稿者/ shu (253回)-(2013/03/29(Fri) 18:15:10)
No66072 (サワー さん) に返信

一部分だけ書き換えるのは難しいので全部再描画がよいです。

文字、文字列の描画幅を求めるとよいと思います。
http://dobon.net/vb/dotnet/graphics/measurestring.html
引用返信 編集キー/
■66074 / inTopicNo.3)  Re[1]: ラベル等の文字の一部の背景色を変更
□投稿者/ howling (310回)-(2013/03/29(Fri) 18:15:57)
No66072 (サワー さん) に返信
こんにちは。

前景色じゃないのなら、
背景色をまず塗って、次に「う」の部分だけ背景色を塗って、
その上で「あいうえお」を描画すればいいんじゃないでしょうか。

「う」はどこか?というのは、
MeasureStringを使用して頂くと良いかと。
http://dobon.net/vb/dotnet/graphics/measurestring.html
引用返信 編集キー/
■66075 / inTopicNo.4)  Re[2]: ラベル等の文字の一部の背景色を変更
□投稿者/ howling (311回)-(2013/03/29(Fri) 18:16:35)
No66073 (shu さん) に返信
…かぶりました。すみません…。
引用返信 編集キー/
■66083 / inTopicNo.5)  Re[3]: ラベル等の文字の一部の背景色を変更
□投稿者/ サワー (2回)-(2013/03/29(Fri) 21:07:37)
shu さん、howling さん、ご回答ありがとうございました。
まさに知りたかった情報がこれです。
この例では「DOBON」と「NET」が黄色の矩形で囲まれていますが、
DrawStringの前にこの矩形で塗りつぶしをすればいいわけですね。

あとは何とかやってみます。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -