第31回 タイトルバーを消す

今回はメインウインドウのタイトルバーを非表示にします。
ただ消すだけだとウインドウの移動ができなくなり不便なため、併せてウインドウのドラッグで移動ができるようにもします。

■Form1.cs
		public Form1()
		{
			InitializeComponent();

			//設定の読み込み
			Option.Load(out _option, Utility.GetExeFolder() + "option.txt");

			Utility.CreateTmpFolder();			//tmpフォルダの作成


			//ウインドウ表示位置設定
			//[Ctrl]キーが押されていないときのみ設定=表示位置を復元したくないときは[Ctrl]キーを押して起動する
			if ((Control.ModifierKeys & Keys.Control) != Keys.Control)
			{
				StartPosition = FormStartPosition.Manual;
				Location = _option.ptWindowPos;
			}


			//DBに情報がなければ再構築する=>時間が非常にかかる!
			if (MP3Info.GetCount() == 0)
			{
				MP3Info.RefreshAllInfo(true);
			}


			//以下を追加
			ControlBox = false;		//タイトルバーを消す
			FormBorderStyle = FormBorderStyle.None;


			//以下を追加
			//フォームのドラッグでウインドウを移動する
			{
				bool _bMoving = false;
				Point _ptMouseDown = new Point(-1, -1);
				Point _ptMouseDownWindowPos = new Point(-1, -1);

				MouseDown += (sender, e) =>
				{
					if (e.Button != MouseButtons.Left)
						return;

					_ptMouseDown.X = e.X;
					_ptMouseDown.Y = e.Y;
					_ptMouseDown = PointToScreen(_ptMouseDown);
					_ptMouseDownWindowPos.X = this.Left;
					_ptMouseDownWindowPos.Y = this.Top;
					_bMoving = true;
				};

				MouseMove += (sender, e) =>
				{
					if (_bMoving)
					{
						Point tmp = new Point(e.X, e.Y);
						tmp = PointToScreen(tmp);

						this.Left = _ptMouseDownWindowPos.X - _ptMouseDown.X + tmp.X;
						this.Top = _ptMouseDownWindowPos.Y - _ptMouseDown.Y + tmp.Y;
					}
				};

				MouseUp += (sender, e) =>
				{
					_bMoving = false;
					_ptMouseDown.X = -1;
					_ptMouseDown.Y = -1;
				};
			}


			//フォームが表示されたときの処理
			Shown += delegate
			{
				//シークバーにフォーカスがあると、再生位置が表示されないのでここで再生ボタンにフォーカスを与える
				buttonPlay.Focus();
			};

プロジェクトファイルをダウンロード


カテゴリー「MP3プレーヤーを作る(C#)」 のエントリー