1

タイトル バーがなく、サイズ変更不可 (固定) である間、Windows フォーム フォームでウィンドウの境界線を維持する必要があります (ウィンドウ プレビューと同様に、タスク バーのボタンの上にマウスを置いたとき):

ここに画像の説明を入力

ControlBoxtofalseTextto を設定すると""、タイトル バーが削除され、希望どおりに境界線が保持されますが、境界線はフォームがかなり大きい場合にのみ表示されます。FormBorderStyleをスタイルの 1 つに設定するとFixed*、境界線が消えます。

ここに画像の説明を入力

説明されている動作を実現するにはどうすればよいですか?

4

2 に答える 2

1

SetWindowsLongをピンボークして、ウィンドウ スタイルを調整できます。

// run in LINQpad
private const int GWL_STYLE = -16;
private const int WS_SIZEBOX = 0x040000;
[DllImport("user32.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
void Main()
{
    var form = new Form();
    form.ControlBox = false;
    form.FormBorderStyle = FormBorderStyle.FixedDialog;
    form.Show();
    SetWindowLong(form.Handle, GWL_STYLE, GetWindowLong(form.Handle, GWL_STYLE) | WS_SIZEBOX);
}

その後、手動でサイズ変更を防止する必要があります。

于 2013-07-31T21:01:35.903 に答える