- - PR -
ラベルの枠に点線
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-04 23:37
Windows Form のアプリでラベルに点線の枠をつけたいのですが、どうすれば出来ますか?、BorderStyleのプロパティにはNone,FixedSingle,Fixed3Dしかないのですが・・・
| ||||||||
|
投稿日時: 2006-05-05 00:40
自分で描画することになります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-05 03:34
ピクチャーボックスとラベルを使ったユーザーコントロールを自作すると、ちょっと
楽しそうですね。 | ||||||||
|
投稿日時: 2006-05-05 09:37
やるのであれば、System.Windows.Forms.Label を継承した「カスタム コントロール」ですね。 OnPaint メソッドをオーバーライドして、Pen を作り DrawRectangle します。 コントロール ライブラリとして作るのであれば、BorderColor プロパティ、 BorderWidth プロパティ、BorderStyle プロパティを設け、それぞれ動的に描画できるようにします。 この時、描画する Rectangle は BorderWidth 分を考慮する必要があります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-05 13:41
似たようなのがVSUGに
http://vsug.jp/tabid/63/forumid/72/postid/3843/view/topic/Default.aspx | ||||||||
|
投稿日時: 2006-05-05 14:05
こういう類の事に継承を使うのは個人的にはあまり好かないですね。
Label.BorderStyle にも矛盾が生じるのではないでしょうか。 私がやるとしたら、使用側で描画してやるか、数が多くて面倒ならそれ専用の Decorator を用意してやるとかそんなのかな。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-05-05 18:13
いいえ、コントロールの量産のためにはコントロール内部で解決すべきだと思います。 また、BorderStyle がどう矛盾するのかわかりませんが、BorderStyle も拡張しますから、問題ないでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-05 18:39
量産という観念で見ればじゃんぬさんの仰るとおりかもしれませんが、この程度の事(枠の描画違い)に継承を使うというのはやや大袈裟な感がしますね。(Factory を用意すればあるいは量産にも対応できるか…。でもそのほうが大袈裟か)
BorderStyle プロパティはオーバーライド可能になっていますが、どの BorderStyle 列挙体の値を設定されても「点線の枠」描画という風にするということでしょうか。そうなると機能拡張ではなく機能制限のように感じます。 普通の枠にしたいときは、通常の Label インスタンスを作り、点線の枠にしたいときは、拡張 Label インスタンスを作る。枠ごときにインスタンスを変更せねばならないのは妙ではないでしょうか? どのやり方も間違いではないと思っていますが、この辺の匙加減は悩みどころです。 _________________ 囚人のジレンマな日々 |
1|2|3
次のページへ»