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

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

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

Re[4]: C# フォームサイズ変更用のカーソル


(過去ログ 136 を表示中)

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

■80203 / inTopicNo.1)  C# フォームサイズ変更用のカーソルを非表示にしたい
  
□投稿者/ ごう (1回)-(2016/06/22(Wed) 20:49:15)

分類:[.NET 全般] 

OS:Windows 7
開発環境:Visual Studio 2010 Express Editionを使用しています。

以下のように、ウィンドウサイズの最大値と最小値を制限するコードを書きました。
ユーザがマウス操作でウィンドウサイズを変更することはできなくなりましたが、
ウィンドウの端にマウスポインタを持っていくと、カーソルの形状が変わるため、
サイズが変えられそうな誤解を与えてしまいます。
カーソルの形状も変えられないようにしたいのですが、どのようにしたらよろしいでしょうか?

なお、FormBorderStyle = FormBorderStyle.FixedSingleとする方法は、
ウィンドウ境界の見た目が変わってしまうため使用するつもりはありません。
(FormBorderStyle = Sizableとしておき、MaximaizeBox=Falseとしておく予定です)


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            MaximumSize = new Size(300, 300);
            MinimumSize = new Size(300, 300);           

        }
    }
}

以上、よろしくお願いします。

引用返信 編集キー/
■80204 / inTopicNo.2)  Re[1]: C# フォームサイズ変更用のカーソルを非表示にしたい
□投稿者/ にゃろめ (1回)-(2016/06/22(Wed) 22:26:47)
ウィンドウ境界の見た目が変わってしまうことが
FixedSingleを使わない理由とのことですが、
具体的にどのような点が問題なのでしょうか?
マージン等の違いであれば、それらのプロパティを変更すればいいのですが。。。

引用返信 編集キー/
■80205 / inTopicNo.3)  Re[1]: C# フォームサイズ変更用のカーソル
□投稿者/ Azulean (654回)-(2016/06/22(Wed) 23:21:57)
2016/06/22(Wed) 23:22:32 編集(投稿者)

No80203 (ごう さん) に返信
> ウィンドウの端にマウスポインタを持っていくと、カーソルの形状が変わるため、
> サイズが変えられそうな誤解を与えてしまいます。

Sizable の見た目の時点で「変えられそうな誤解を与える」ので、「実は変えられません」の時点でユーザーエクスペリエンスとしては悪い方だと、私は思います。

どうしても実現したいのであれば、WndProc メソッドをオーバーライドして、WM_NCHITTEST で HTLEFT から HTBOTTOMRIGHT までの戻り値を HTCLIENT などに書き換えてしまえばできるんじゃないですかね。
前述したように、再考することをおすすめしますが。
引用返信 編集キー/
■80273 / inTopicNo.4)  Re[2]: C# フォームサイズ変更用のカーソル
□投稿者/ ごう (2回)-(2016/06/26(Sun) 16:04:21)
アドバイスありがとうございます。
リプレースもので、見た目を変えないでほしいという要求があったので
なるべく既存のものに近い見た目にしようとしておりました。

FixedSingleにして、枠線の見た目がやや太くなれば問題ないと思っております。

最悪、WndProcを使うということですね。手間をかけて実現するものでもなさそうなので、
再考したいと思います。
引用返信 編集キー/
■80274 / inTopicNo.5)  Re[3]: C# フォームサイズ変更用のカーソル
□投稿者/ 魔界の仮面弁士 (751回)-(2016/06/26(Sun) 16:38:35)
No80273 (ごう さん) に返信
> FixedSingleにして、枠線の見た目がやや太くなれば問題ないと思っております。

環境によっては、Sizable と FixedSingle と FixedSingle とで、
枠線の見た目が一緒の環境もあったりします。
当方の Win7 もそうですし、下記のブログ記事も同じようで。
http://20100718seko.blog130.fc2.com/blog-entry-17.html


> 最悪、WndProcを使うということですね。
実装例。
https://www.ipentec.com/document/document.aspx?page=csharp-winform-border-only-window-block-resize
引用返信 編集キー/
■80275 / inTopicNo.6)  Re[4]: C# フォームサイズ変更用のカーソル
□投稿者/ ごう (3回)-(2016/06/26(Sun) 19:21:35)
ご教示ありがとうございます。
当方Win7を使ってますが、若干、Sizable と FixedSingle とで見た目が異なるように思っています。

いちど、WinProcを使ったやり方をチャレンジしてみたいと思います。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -