
前略
・C#の初心者です。
・タスクバーは下記のプログラムで非表示とすることができますが、同時にタイトルバーも消えてしまいます。タスクバーは非表示で、右端に閉じる・最大化・最小化アイコン("X"、 "□"、"_")のないタイトルバーを表示したいのですが、その方法をおしえてください。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace noTaskbar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;//タイトルバー&タスクバー非表示
this.WindowState = FormWindowState.Maximized;//
}
}
}
以上、よろしくお願いします
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();
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でキーイベントが発生しない...
-
C# DataGridView列カスタマイズ
-
イベント処理について(文字列を...
-
C#でのWNetAddConnection3の使...
-
unityでのC++エラーの原因がわ...
-
C#で、あるクラスのメンバーす...
-
C# WinForm のDataGridView Cel...
-
決められて時間が経過するとア...
-
マルチスレッドプログラムから...
-
C#単体テストで、UnitTestの使...
-
JTable で複数行の編集
-
大量のデータを読み込んで表示...
-
オブジェクトの中のプロパティ...
-
ORA-01858: 数値を指定する箇所...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C#で動的配列Listの中身をListB...
-
IF関数でEmpty値を設定する方法。
-
変数を動的に利用するには?
-
C#の質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
ボタンの複数割り当てについて
-
コンボボックスを使う時の警告
-
C# DataGridView列カスタマイズ
-
Junitテストでvoid戻り値メッソ...
-
C# 矢印キーの取得
-
C#でのWNetAddConnection3の使...
-
C# WinForm のDataGridView Cel...
-
C# visibleプロパティをfalseに...
-
GOF本のStrategyのJava版での質...
-
以下のコードのどこが問題なの...
-
イメージボタンを作成したいの...
-
Androidでこのエラーを解決した...
-
C#で、定数をフラグ(if文)に...
-
Javaでウィンドウ作成について
-
C# 親フォームで指定した値を...
-
JWindow、JFrameでモーダル化の...
-
javaの同期について
-
javaアプレット repaintのタイ...
おすすめ情報