鼠标长按TrackBar增加或者减少

TrackBar 属性说明

Maximum属性:用来获取或设置TrackBar控件可表示的范围上限,即最大值。

Minimum属性:用来获取或设置TrackBar控件可表示的范围下限,即最小值。

SmallChange属性:用来获取或设置当滑块短距离移动时对Value属性进行增减的值。

Value属性:用来获取或设置滑块在跟踪条控件上的当前位置的值。------其他控件调取的主要方式。

Orientation属性:用来获取或设置一个值,该值指示跟踪条是在水平方向还是在垂直方向。

TickFrequency属性:用来获取或设置一个值,该值指定控件上绘制的刻度之间的增量。

注册TrackBar 的ValueChanged事件

this.trackBar1.ValueChanged += new System.EventHandler(this.TrackBar1_Scroll);

事件处理:TrackBar 拖动时候,获取Value,显示到textBox2上。

private void TrackBar1_Scroll(object sender, EventArgs e)
        {
            this.textBox2.Text = trackBar1.Value.ToString();
        }

 

长按按钮调整TrackBar 值

Winform 没有自带的长按事件,所以使用鼠标的MuseDown与MouseUp加上定时器来控制。

页面上拖动四个timer,如下图所示,鼠标MouseDown事件触发,启动timer3,延迟100ms 后启动timer1

timer3 主要负责判断鼠标是长按。timer1 负责执行TrackBar 的值增加。timer4、timer2 负责TrackBar 值的减少。

/// <summary>
        /// TrackBar1_Add
        /// </summary>
        private void TrackBar1_Add()
        {
            if (trackBar1.Value < 100)
            {
                trackBar1.Value = trackBar1.Value + 1;
            }
        }

        /// <summary>
        /// TrackBar1_Subtraction
        /// </summary>
        private void TrackBar1_Subtraction()
        {
            if (trackBar1.Value >= 1)
            {
                trackBar1.Value = trackBar1.Value - 1;
            }
        }

        /// <summary>
        /// label4 mouseDown trackBar1.Value Subtraction and time3 start
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label4_MouseDown(object sender, MouseEventArgs e)
        {
            TrackBar1_Subtraction();
            timer3.Interval = 100;
            timer3.Enabled = true;
        }

        /// <summary>
        /// time3 handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer3_Tick(object sender, EventArgs e)
        {
            timer1.Interval = 50; //0.05s 後ろ動作を始める
            timer1.Enabled = true;
            timer3.Enabled = false;
        }

        /// <summary>
        /// label4 MouseUp
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label4_MouseUp(object sender, MouseEventArgs e)
        {
            timer3.Enabled = false;
            timer1.Enabled = false;
        }

        /// <summary>
        /// time1 handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            TrackBar1_Subtraction();  // trackBar1.Value set
        }

        /// <summary>
        /// label5 mouse down operator
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label5_MouseDown(object sender, MouseEventArgs e)
        {
            TrackBar1_Add();
            timer4.Interval = 100;
            timer4.Enabled = true;
        }

        /// <summary>
        /// label5 mouse uo operator
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label5_MouseUp(object sender, MouseEventArgs e)
        {
            timer4.Enabled = false;
            timer2.Enabled = false;
        }

        /// <summary>
        /// time2 handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer2_Tick(object sender, EventArgs e)
        {
            TrackBar1_Add();
        }

        /// <summary>
        /// time4 handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer4_Tick(object sender, EventArgs e)
        {
            timer2.Interval = 50;
            timer2.Enabled = true;
            timer4.Enabled = false;
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值