C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

特定の場所でのみマウスホイールを反応させたい

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■86881 / inTopicNo.1)  特定の場所でのみマウスホイールを反応させたい
  
□投稿者/ C#猛特訓ちゅう (1回)-(2018/03/31(Sat) 12:41:41)

分類:[C#] 

C#
特定の場所でのみマウスホイールを反応させたい

ライフカウンターを作っているのですが、以下のように今のところ書いてます。

UserLifePointと書いてあるところ(Label)の数字がマウスホイールで上がったり下がったりする感じで
つくっています。
Labelのところ(数字のところ)にマウスカーソルをあわせたときにのみホイールが有効になるようにしたいのですが、
Form1全体でマウスホイールが反応して数字が動いてしまいます。

どうすればよいですか?色々とググったりして書いているのでそもそもこの書き方が悪かったらスミマセン。。。。

昨日からC#を始めたばかりなので、お手柔らかにご教授ください。

public Form1()
{
InitializeComponent();
this.MouseWheel += new MouseEventHandler(this.UserLifePoint_MouseWheel);
this.ResumeLayout(true);
//以下略


//カウンター本体

int i = 20;

private void UserLifePoint_MouseWheel(object sender, MouseEventArgs e)
{
if (e.Delta > 0)
{
++i;
UserLifePoint.Text = i.ToString();

}
else if (e.Delta < 0)
{
--i;
UserLifePoint.Text = i.ToString();
}
}
引用返信 編集キー/
■86882 / inTopicNo.2)  Re[1]: 特定の場所でのみマウスホイールを反応させたい
□投稿者/ Hongliang (625回)-(2018/03/31(Sat) 13:47:40)
e.X/e.Yに現在のマウスカーソルの座標が格納されているので、それで有効範囲内かどうかを確認すれば良いんじゃないでしょうか。
引用返信 編集キー/
■86883 / inTopicNo.3)  Re[2]: 特定の場所でのみマウスホイールを反応させたい
□投稿者/ C#????P???イ (1回)-(2018/03/31(Sat) 14:36:12)
No86882 (Hongliang さん) に返信
> e.X/e.Yに現在のマウスカーソルの座標が格納されているので、それで有効範囲内かどうかを確認すれば良いんじゃないでしょうか。

スミマセン。もうちょっとわかりやすくご教授ください。
引用返信 編集キー/
■86884 / inTopicNo.4)  Re[3]: 特定の場所でのみマウスホイールを反応させたい
□投稿者/ Azulean (941回)-(2018/03/31(Sat) 14:57:09)
No86883 (C#????P???イ さん) に返信
> スミマセン。もうちょっとわかりやすくご教授ください。

「もうちょっとわかりやすく」ではなく、どのキーワードがわからないかを示した方が良いでしょう。
「わかる」「わからない」のしきいはその人の固有のものなので、「もうちょっと」と書かれても、回答者側にはわかりませんので。



まあ、コードで書けばこういう一行を MouseWheel イベントハンドラの先頭に書くということでしょうね。

if (!UserLifePoint.Bounds.Contains(e.Location)) return;

コピペするだけでなく、Boudns プロパティ、Location プロパティ、Rectangle.Contains メソッドなど、ちゃんと調べて意味を理解する努力をしましょう。
引用返信 編集キー/
■86885 / inTopicNo.5)  Re[4]: 特定の場所でのみマウスホイールを反応させたい
□投稿者/ C#猛特訓ちゅう (3回)-(2018/03/31(Sat) 15:37:25)
No86884 (Azulean さん) に返信
> ■No86883 (C#????P???イ さん) に返信
>>スミマセン。もうちょっとわかりやすくご教授ください。
>
> 「もうちょっとわかりやすく」ではなく、どのキーワードがわからないかを示した方が良いでしょう。
> 「わかる」「わからない」のしきいはその人の固有のものなので、「もうちょっと」と書かれても、回答者側にはわかりませんので。
>
>
>
> まあ、コードで書けばこういう一行を MouseWheel イベントハンドラの先頭に書くということでしょうね。
>
> if (!UserLifePoint.Bounds.Contains(e.Location)) return;
>
> コピペするだけでなく、Boudns プロパティ、Location プロパティ、Rectangle.Contains メソッドなど、ちゃんと調べて意味を理解する努力をしましょう。

手厳しく教えて頂きありがとうございます。精進します。。。。。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ