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

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

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

Re[4]: フォームの枠線を消したいがサイズ変更はできるようにしたい


(過去ログ 47 を表示中)

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

■25467 / inTopicNo.1)  フォームの枠線を消したいがサイズ変更はできるようにしたい
  
□投稿者/ ken (19回)-(2008/09/19(Fri) 19:37:07)

分類:[.NET 全般] 

VB2005

こんにちは。

FormBorderStyleをnoneにするとフォームの枠線が消えるのですが、
サイズ変更もできなくなってしまいます。

フォームの枠線は表示させないがサイズ変更はできるようにしたいのですが、
どのようにすればよいでしょうか。

よろしくお願い致します。
引用返信 編集キー/
■25475 / inTopicNo.2)  Re[1]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ のん (6回)-(2008/09/19(Fri) 23:38:50)
のん さんの Web サイト
No25467 (ken さん) に返信
> VB2005
>
> こんにちは。
>
> FormBorderStyleをnoneにするとフォームの枠線が消えるのですが、
> サイズ変更もできなくなってしまいます。
>
> フォームの枠線は表示させないがサイズ変更はできるようにしたいのですが、
> どのようにすればよいでしょうか。
>
> よろしくお願い致します。

お世話になります。
Formのサイズですか?
AutoSizeプロパティをTrueにしても変更できませんか?
引用返信 編集キー/
■25476 / inTopicNo.3)  Re[1]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ ゆきゆっき (1回)-(2008/09/20(Sat) 00:00:52)
はじめまして。
枠線なしでリサイズするとなると、フォームの境界でサイズ変更するということでしょうか。

そうなると、
FormのMouseDownイベントで座標を拾い、枠線の位置を検知して、
MouseUpの位置でサイズを固定する、というやり方が思いつきます。

そのままサイズを変更するだけですと、視覚的にわかりづらいと思いますので、
別途サイズ変更の描画処理をするか、
リアルタイムにフォームを再描画する必要があると思います。
ご参考までに。
引用返信 編集キー/
■25477 / inTopicNo.4)  Re[1]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ はつね (854回)-(2008/09/20(Sat) 00:07:43)
はつね さんの Web サイト
No25467 (ken さん) に返信
> FormBorderStyleをnoneにするとフォームの枠線が消えるのですが、
> サイズ変更もできなくなってしまいます。

FormBorderStyleはフォームの枠線のスタイルを変えるとともに、その
スタイルに相当するWindows標準なフォームサイズ変更の可否も決定し
ます。
FormBorderStyleがnoneということは、フォームのサイズ変更をすると
きに必要な枠線がない状態ですから、サイズ変更は否というのが標準
になります。

FormBorderStyleはSizebleのままとして、枠線の色を内部と同じ色に
変更するようにオーナードローあたりを調べてみるといいかも。

http://www.syncfusion.com/FAQ/winforms/FAQ_c41c.aspx?print=609

引用返信 編集キー/
■25479 / inTopicNo.5)  Re[2]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ 渋木宏明(ひどり) (884回)-(2008/09/20(Sat) 00:21:16)
渋木宏明(ひどり) さんの Web サイト
> FormBorderStyleはSizebleのままとして、枠線の色を内部と同じ色に
> 変更するようにオーナードローあたりを調べてみるといいかも。

普通はしません。(ボーダーの太さやらがシステム設定のままでいいならそれもアリなのかもしれませんが)

WM_HITTEST メッセージに対して適切に応答することで実現するのが一般的と思います。

引用返信 編集キー/
■25480 / inTopicNo.6)  Re[3]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ Azulean (203回)-(2008/09/20(Sat) 00:31:16)
> WM_HITTEST メッセージに対して適切に応答することで実現するのが一般的と思います。
WM_NCHITTESTですね。

VBだけど、この辺にが埋もれていますね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=38887&forum=7&start=8
(HTLEFT〜HTBOTTOMRIGHTあたりがキーワード。)

引用返信 編集キー/
■25536 / inTopicNo.7)  Re[4]: フォームの枠線を消したいがサイズ変更はできるようにしたい
□投稿者/ ken (20回)-(2008/09/22(Mon) 09:10:17)
みなさん、ありがとうございます。
WM_NCHITTESTで対応できました。
(ソースをコピペしただけなので、これから意味は調べます。。。)

コントロールをフォームいっぱいに表示(Dock=Fill)にしていた場合に、上記では
対応できませんでした。
ですので、コントールをフォームのサイズより、微妙に小さくすることで対応しました。

そうすると、はつねさんのおっしゃっていたような対応の方がよかったのかしら。
(「普通はしない」というようなご意見もあったので、今回は見送りました。)

みなさん、ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -