• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# タスク非表示でタイトルバーは表示する)

C#タスク非表示でタイトルバーは表示する方法は?

このQ&Aのポイント
  • C#の初心者です。タスクバーはプログラムで非表示とすることができますが、同時にタイトルバーも消えてしまいます。タスクバーは非表示で、右端に閉じる・最大化・最小化アイコン('X'、'□'、'_')のないタイトルバーを表示したいのですが、その方法を教えてください。
  • 以下のプログラムを使用すると、C#のタスクバーを非表示にすることができますが、それによりタイトルバーも消えてしまいます。タスクバーを非表示にしながら、右端に閉じる・最大化・最小化アイコン('X'、'□'、'_')のないタイトルバーを表示する方法を教えてください。
  • C#の初心者です。タスクバーを非表示にすると、タイトルバーも消えてしまいます。タスクバーを非表示にしつつ、右端に閉じる・最大化・最小化アイコン('X'、'□'、'_')のないタイトルバーを表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

「タスクバーを表示しない」だったんですね。 「タスクバーに表示しない」と勘違いしてました。要はフルスクリーンモードにしたいということですよね。 APIを使用して、 (1)「タスクバーを自動的に隠す」に設定にする。 (2) タスクバーを非表示にする。 (3) フォームを最大表示にする。 とするとタイトルバーありの状態でタスクバーを非表示にできるようです。 using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, IntPtr lpWindowName); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); private const int SW_HIDE = 0; private const int SW_NORMAL = 1; [StructLayout(LayoutKind.Sequential)] struct APPBARDATA { public int cbSize; public IntPtr hwnd; public uint uCallbackMessage; public uint uEdge; public Rectangle rc; public int lParam; }; private const int ABM_SETSTATE = 10; private const int ABS_AUTOHIDE = 1; private const int ABS_ALWAYSONTOP = 2; [DllImport("shell32.dll")] static extern int SHAppBarMessage(int msg, ref APPBARDATA pbd ); public Form1() { InitializeComponent(); // 「タスクバーを自動的に隠す」 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_AUTOHIDE; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを非表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_HIDE); // コントロールボックスを非表示 this.ControlBox = false; // 最大表示 this.WindowState = FormWindowState.Maximized; } private void button1_Click(object sender, EventArgs e) { // タスクバーを常に表示 APPBARDATA abd = new APPBARDATA(); abd.cbSize = Marshal.SizeOf(abd); abd.lParam = ABS_ALWAYSONTOP; SHAppBarMessage(ABM_SETSTATE, ref abd); // タスクバーを表示 ShowWindow(FindWindow("Shell_TrayWnd", IntPtr.Zero), SW_NORMAL); // フォームを閉じる this.Close(); } } }

noname#154688
質問者

お礼

前略 ・希望通りの、タスクバー非表示、タイトルバー表示となるプログラムであることを確認しました。  大変感謝しております。 以上 

その他の回答 (1)

回答No.1

public Form1() { InitializeComponent(); this.ControlBox = false; this.ShowInTaskbar = false; } でどうでしょうか。

noname#154688
質問者

お礼

前略 ・さっそく 回答ありがとうございます。 ・回答のコードではタスクバーは消えません。tsukasa-12rさんは実際に実行して  消えたのでしょうか?   

関連するQ&A