WindowsFormsアプリでマウスイベントのサンプル
マウスを移動したり、クリックしたり(押した瞬間、離した瞬間含む)した時の情報を取得してみましょう
目次
2つのフォームのデザイン
プロジェクトを右クリックして、新規でフォーム(Form2)を作成します
Form1にはボタンを、Form2にはラベルを1つずつ配置しておきましょう
コード
Form1のサンプル
Form1のコンストラクタでForm2のインスタンスを作成しています
ボタンをクリックするとForm2のラベルが更新されます
マウスを移動させたり、押した瞬間、離した瞬間のイベントハンドラを定義しています
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
Form2 form2;
public Form1()
{
InitializeComponent();
form2 = new Form2();
form2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
form2.Hp = 100;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
// Console.WriteLine($"x = {e.X}, y = {e.Y}");
}
Point startPos;
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine(e.Button);
if (e.Button == MouseButtons.Left)
{
Console.WriteLine("左ボタンが押された");
}
else if (e.Button == MouseButtons.Right)
{
Console.WriteLine("右ボタンが押された");
}
//startPos.X = e.X; ;
//startPos.Y = e.Y;
startPos = new Point(e.X, e.Y);
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
Console.WriteLine($"マウスが押された x = {startPos.X}, y = {startPos.Y}");
Console.WriteLine($"マウスが離された x = {e.X}, y = {e.Y}");
}
}
}
Form2のサンプル
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form2 : Form
{
public int Hp
{
set
{
label1.Text = value.ToString();
}
}
public Form2()
{
InitializeComponent();
}
}
}
実行結果のサンプル
出力ウィンドウで確認することができます
Left
左ボタンが押された
マウスが押された x = 108, y = 45
マウスが離された x = 108, y = 45
Right
右ボタンが押された
マウスが押された x = 108, y = 45
マウスが離された x = 108, y = 45
Formsアプリの場合のConsole.WriteLineメソッドでの表示場所
表示されていない時は、表示メニューから選択できます
ディスカッション
コメント一覧
まだ、コメントがありません