タイトル
 メニューにないコーナーはTopからいけます
TOP.NETWindowsForm → This Page

.NET プログラミングのコーナー
Windowsフォーム関連 > フォーム関連 > タイトルバーなし


概要


タイトルバーのないフォームをマウスのドラッグするサンプルです。


サンプルイメージ


サンプル画像


サンプルソース(一部抜粋)


C#

// タイトルバーがないフォーム
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;


private Point mMousePoint;

private void Form1_Load(object sender, System.EventArgs e)
{
	// ラベルやボタンのマウス移動(ドラッグ)でもフォームが動くように設定
	Label1.MouseDown += new MouseEventHandler(this.Form1_MouseDown);
	Label1.MouseMove += new MouseEventHandler(this.Form1_MouseMove);
	Button1.MouseDown += new MouseEventHandler(this.Form1_MouseDown);
	Button1.MouseMove += new MouseEventHandler(this.Form1_MouseMove);
}

// マウスダウン
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
	if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
	{
		//左クリックの場合のみ位置を記憶
		mMousePoint = new Point(-e.X, -e.Y);
	}
}

// マウスの移動
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
	if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
	{
		//フォームの移動
		this.SetDesktopLocation(this.Left + mMousePoint.X + e.X, this.Top + mMousePoint.Y + e.Y);
	}
}


--------------------------------------------------------------------------------
VB.NET

'タイトルバーがないフォーム
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None


Private mMousePoint As Point

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'ラベルやボタンのマウス移動(ドラッグ)でもフォームが動くように設定
    AddHandler Label1.MouseDown, AddressOf Me.Form1_MouseDown
    AddHandler Label1.MouseMove, AddressOf Me.Form1_MouseMove
    AddHandler Button1.MouseDown, AddressOf Me.Form1_MouseDown
    AddHandler Button1.MouseMove, AddressOf Me.Form1_MouseMove
End Sub

'マウスダウン
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
    If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
        '左クリックの場合のみ位置を記憶
        mMousePoint = New Point(-e.X, -e.Y)
    End If
End Sub

'マウスの移動
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
    If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
        'フォームの移動
        Me.SetDesktopLocation(Me.Left + mMousePoint.X + e.X, Me.Top + mMousePoint.Y + e.Y)
    End If
End Sub


サンプルソースのダウンロード


ソースのダウンロード


TOP.NETWindowsForm → This Page
Valid CSS!