WPF实现鼠标滚轮滑动变更数值


这里以TEXTBOX控件为例子


1.先在界面编辑建立两个textbox控件,包含属性中比较重要的是禁用输入法和输入数据的预处理函数的设定,预输入处理函数将使得TEXTBOX只能输入数字相关的符号

       



        <TextBox x:Name="tbX" HorizontalAlignment="Left" Height="23" Margin="84,495,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="70"  MouseWheel="numberWheelchange" PreviewTextInput="tb_PreviewTextInput" InputMethod.IsInputMethodEnabled="False"/>
        <TextBox x:Name="tbY" HorizontalAlignment="Left" Height="23" Margin="206,495,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="70"  MouseWheel="numberWheelchange" PreviewTextInput="tb_PreviewTextInput" InputMethod.IsInputMethodEnabled="False"/>

设置输入法禁用:InputMethod.IsInputMethodEnabled="False"

设置输入数据的预先处理函数:PreviewTextInput="tb_PreviewTextInput"

设置滚轮动作执行函数:MouseWheel="numberWheelchange"



2.预处理函数只允许输入负号和数字和小数点,这里是通过正则表达式来实现的


  private void tb_PreviewTextInput(object sender, TextCompositionEventArgs e)

        {
            Regex re = new Regex("[^0-9.-]+");

            e.Handled = re.IsMatch(e.Text);

        }







3.滚轮动作的代码执行部分,先判别当前激活的控件,是否有数值,随后是对数值的变更


private void numberWheelchange(object sender, MouseWheelEventArgs e)
        {
            if(tbX.IsSelectionActive)
            {
               if(tbX.Text != null)
                {
                    tbX.Text = (Convert.ToInt16(tbX.Text) + e.Delta/120).ToString();
                }
            }
            if(tbY.IsSelectionActive)
            {
                if (tbY.Text != null)
                {
                    tbY.Text = (Convert.ToInt16(tbY.Text) + e.Delta / 120).ToString();
                }
            }
        }



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值