
前略
・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ランキング
-
Junitテストでvoid戻り値メッソ...
-
C# visibleプロパティをfalseに...
-
Exception in thread "main" ...
-
JavaFXでの表内のチェックボッ...
-
大量のデータを読み込んで表示...
-
LVM_SETITEMSTATEでListViewの...
-
オブジェクトの中のプロパティ...
-
IF関数でEmpty値を設定する方法。
-
ダブルクォーテーションを含む...
-
ORA-01858: 数値を指定する箇所...
-
Javaで改行などが出来ないのです。
-
java 拡張for map
-
JSPでImportエラーになります
-
全角英数字とハイフンを半角に...
-
Path型をString型へ変換する(Java)
-
BufferedReaderでのエラー
-
カタカナの小文字を大文字に変...
-
JSPやサーブレットでSystem.out...
-
getStringの値がNULLの時の処理
-
クエリの結果とレコードセット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、あるクラスのメンバーす...
-
大量のデータを読み込んで表示...
-
C#でのWNetAddConnection3の使...
-
C# WinForm のDataGridView Cel...
-
C#から、C++で作成したdll内の...
-
C# DataGridView列カスタマイズ
-
Junitテストでvoid戻り値メッソ...
-
C#でキーイベントが発生しない...
-
C#で別のFormへ複数の値を返そ...
-
ボタンの複数割り当てについて
-
C# visibleプロパティをfalseに...
-
C# 親フォームで指定した値を...
-
Processingでマウスクリックで...
-
C# 矢印キーの取得
-
決められて時間が経過するとア...
-
C# タスクバーを隠したフォーム...
-
ユーザーコントロールを動的に...
-
コンボボックスを使う時の警告
-
[C#.net]スレッド化された別フ...
-
ボタンのイベントで異なるウィ...
おすすめ情報