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

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

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

Re[5]: トラックバーのマウスホイールによる値変化量


(過去ログ 50 を表示中)

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

■27308 / inTopicNo.1)  トラックバーのマウスホイールによる値変化量
  
□投稿者/ 真田 (1回)-(2008/11/03(Mon) 18:11:20)

分類:[C#] 

Visual C# 2005を使用しています。

トラックバーのマウスホイールによる値の変化量を±1ずつに変更しようと思っていますが、うまくいきません。
デフォルトでは±3ずつになっています。

コードは以下のように書いていますが、最初の変化量しか検出しません。
トラックバーがアクティブになるとうまくいかないようです。
初心者ですがよろしくお願いします。

this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseWheel);
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.trackBar1_MouseWheel);

private void Form1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
trackBar1.Focus();
}

private void trackBar1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
this.textBox1.Text = "ホイール検出: " + (e.Delta / 120);
if (e.Delta / 120 == 1)
{
if (trackBar1.Value < 10)
trackBar1.Value++;
}
else if (e.Delta / 120 == -1)
{
if (trackBar1.Value > 0)
trackBar1.Value--;
}
}






引用返信 編集キー/
■27310 / inTopicNo.2)  Re[1]: トラックバーのマウスホイールによる値変化量
□投稿者/ 倉田 有大 (314回)-(2008/11/03(Mon) 18:33:54)
私も試してみましたが・・うーん、どうすればいいのかなこれ。
trackBar1_ValueChangedにくる頃にはすでに値がかわっているし。
引用返信 編集キー/
■27315 / inTopicNo.3)  Re[1]: トラックバーのマウスホイールによる値変化量
□投稿者/ Azulean (218回)-(2008/11/03(Mon) 19:22:27)
> デフォルトでは±3ずつになっています。
そのデフォルトはコントロールパネルのマウスのプロパティで変動します。

> トラックバーのマウスホイールによる値の変化量を±1ずつに変更しようと思っていますが、うまくいきません。
こんな動き?

class TrackBar2 : TrackBar
{
    protected override void OnMouseWheel(MouseEventArgs e)
    {
        if (e.Delta < 0)
        {
            if (Minimum < Value) Value--;
        }
        else if (0 < e.Delta)
        {
            if (Value < Maximum) Value++;
        }
        HandledMouseEventArgs handledEventArgs = (HandledMouseEventArgs)e;
        handledEventArgs.Handled = true;
    }
}

引用返信 編集キー/
■27321 / inTopicNo.4)  Re[2]: トラックバーのマウスホイールによる値変化量
□投稿者/ 倉田 有大 (316回)-(2008/11/03(Mon) 20:29:48)
> class TrackBar2 : TrackBar
> {
> protected override void OnMouseWheel(MouseEventArgs e)
> {
> if (e.Delta < 0)
> {
> if (Minimum < Value) Value--;
> }
> else if (0 < e.Delta)
> {
> if (Value < Maximum) Value++;
> }
> HandledMouseEventArgs handledEventArgs = (HandledMouseEventArgs)e;
> handledEventArgs.Handled = true;
> }
> }

あ、なるほど継承すればいいんですね。
handledEventArgs.Handled = true;
これが何をしているのか、ぐぐってもわからない/(^o^)\

引用返信 編集キー/
■27323 / inTopicNo.5)  Re[3]: トラックバーのマウスホイールによる値変化量
□投稿者/ Azulean (220回)-(2008/11/03(Mon) 20:44:30)
2008/11/03(Mon) 20:44:45 編集(投稿者)

> あ、なるほど継承すればいいんですね。
> handledEventArgs.Handled = true;
> これが何をしているのか、ぐぐってもわからない/(^o^)\
MSDNではこれですが…
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.handledmouseeventargs.handled.aspx

記載が間違っています。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2932857&SiteID=7


Handled = trueの時、デフォルトウィンドウプロシージャに処理が渡りません。
引用返信 編集キー/
■27324 / inTopicNo.6)  Re[4]: トラックバーのマウスホイールによる値変化量
□投稿者/ 倉田 有大 (318回)-(2008/11/03(Mon) 20:49:02)
2008/11/04(Tue) 00:06:17 編集(投稿者)

>>handledEventArgs.Handled = true;
>>これが何をしているのか、ぐぐってもわからない/(^o^)\
> MSDNではこれですが…
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.handledmouseeventargs.handled.aspx
>
> 記載が間違っています。
> http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2932857&SiteID=7
>
>
> Handled = trueの時、デフォルトウィンドウプロシージャに処理が渡りません。

Azuleanさんありがとうございます。
なるほど、trueの時処理が渡らないんですね。
MSDN信じると、はまりそうですねこれ。

おっと、間違いを指摘されたのもAzuleanさんですね、びっくりしました、お疲れ様です。
引用返信 編集キー/
■27400 / inTopicNo.7)  Re[5]: トラックバーのマウスホイールによる値変化量
□投稿者/ 真田 (2回)-(2008/11/05(Wed) 13:51:44)
ありがとうございました!!
できました◎
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -