如何确保用鼠标调整 TrackBar 控件时设置的值是 SmallChange 的倍数而不是中间值?

2023-12-14

我使用.Net 轨迹栏控件。我的轨迹栏点是 0...5...10..15。 问题是,当用户滚动轨迹栏时,他们很容易在点之间滚动。但我不想让该用户只将滚动条放在我的显示点中。就像他们只设置了 0,5,10 等。而不是他们设置了 6,7,8,9...

我将 SmallChanges 属性设置为 5 值。但他们使用键盘更改而不是鼠标滚动。


您只需在 ValueChanged 事件的事件处理程序中覆盖 Value 属性的值,即可强制 Value 属性为 SmallChange 属性的倍数。像这样:

    private void trackBar1_ValueChanged(object sender, EventArgs e) {
        var bar = (TrackBar)sender;
        if (bar.Value % bar.SmallChange != 0) {
            bar.Value = bar.SmallChange * ((bar.Value + bar.SmallChange / 2) / bar.SmallChange);
        }
    }

请注意,这甚至在用户用鼠标拖动拇指时也有效,就像他使用键盘时的行为一样。我以为这就是你想要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何确保用鼠标调整 TrackBar 控件时设置的值是 SmallChange 的倍数而不是中间值? 的相关文章

  • Winforms Chart - 在折线图上绘制允许的区域

    如何在图表上绘制灰色区域 信号的允许范围 我使用 Winforms 和标准 MicrosoftSystem Windows Forms DataVisualization类 它应该是自定义范围 这意味着起始 Y 点不能仅为零 我在运行时在线
  • 从 ALT+TAB 菜单隐藏无边框窗口

    我正在开发一个带有无边界表单的托盘应用程序 该应用程序在后台运行 如果用户想要执行不同的操作 他们可以通过右键单击托盘图标 NotifyIcon 来打开上下文菜单 所以我的要求是 1 应用程序始终以最小化模式启动 并且将显示托盘图标 2 应
  • 无法加载文件或程序集“Microsoft.Office.Interop.Excel”

    我在 WinForm 应用程序中使用 Excel 时遇到问题 当我在多台计算机上尝试它时 它在它们上运行得很好 但是当我在另一台计算机上尝试它时 它会给我 System IO FileLoadException 无法加载文件或程序集 错误
  • 在组件上画线

    我有一个包含 2 列的表 在其中一列中我有一个由我创建的组件 我想在此表中画一条线放在前面 但是当我尝试使用我发布的代码时 该线位于我创建的其他组件后面 public void CoTableLayoutPanel2 Paint objec
  • DataGridView:如何让回车键添加新行而不是更改当前单元格?

    如何让 Enter 键在 Winforms 中起作用DataGridViewTextBoxCell就像在普通 Winform 中一样TextBox 向文本添加新行 而不是更改当前单元格 嗯 我知道如何解决这个问题了 首先 创建一个类 名为C
  • C# Winform(实体框架)- 将数据绑定 DataGridView 或 BindingSource 转换为 DataTable

    我正在使用 C Winforms 和实体框架 我的项目基于此链接建模 与 WinForms 的数据绑定 https msdn microsoft com en us data jj682076 aspx 我的问题是如何转换DataGridV
  • C# 使用 HttpWebRequest 在 POST 中转义加号 (+)

    我在发送密码字段中包含 等字符的 POST 数据时遇到问题 string postData String Format username 0 password 1 anyname 13Gt2 我正在使用 HttpWebRequest 和网络
  • 如果你想在 datagridview 中显示图像,winform .net 最好的方法

    net web 开发人员 通常不制作任何 win32 应用程序 但现在我必须这样做 我有一个大约有 2000 个条目的列表 每个条目应显示为带有文本框的标签 另一个标签和图片 我用 flowlayoutpanel 做了这个 我对条目做了 f
  • 如何使用鼠标拖动和移动winform

    我知道如何通过添加以下代码来 拖动和移动 winform Protected Overrides Sub WndProc ByRef m As Message If m Msg 163 And ClientRectangle Contain
  • 透明窗口层可点击并始终位于顶部

    这是我尝试实现的一些代码 其目的是创建一个透明 全屏 无边框 可点击且始终位于其他窗口之上的表单层 然后 您可以使用 directx 在其顶部进行绘制 否则保持透明 不起作用的部分是点击部分和 directx 渲染 当我运行它时 我基本上在
  • 如何从RichTextBox中获取显示的文本?

    如何获得显示的RichTextBox 中的文本 我的意思是 如果 RichTextBox 滚动到末尾 我只想接收那些对我来说可见的行 P S 获得第一个显示的字符串就足够了 您想使用 RichTextBox GetCharIndexFrom
  • 方法“xxx”不能是事件的方法,因为该类派生的类已经定义了该方法

    我有一个代码 public class Layout UserControl protected void DisplayX DisplayClicked object sender DisplayEventArgs e CurrentDi
  • 启动画面后主窗口出现在其他窗口后面

    我有一个带有启动屏幕的 Windows 窗体应用程序 当我运行该应用程序时 启动屏幕显示正常 消失并加载应用程序的主窗体 但是 当我加载主窗体时 它出现在包含该应用程序的 Windows 资源管理器目录下 这是运行启动画面然后运行主窗体的代
  • 从 Windows 窗体项目中创建 DLL

    我有一个包含 2 个项目的解决方案 其中一个项目只能从另一个项目运行 我想将它转换为 DLL 以便最终用户无法直接运行它 实际上 他们得到 2 个可执行文件 有没有直接的方法可以做到这一点 而不必复制整个项目 是的 转到 项目属性 应用程序
  • 检查数据库中是否存在记录

    我正在使用这些代码行来检查记录是否存在 SqlCommand check User Name new SqlCommand SELECT FROM Table WHERE user txtBox UserName Text conn int
  • 当移动到控件的 ScrollBar 上时触发 MouseLeave 事件

    由于无法解决问题 我重新发布此问题 原始here https stackoverflow com questions 2024393 treeview mouseleave event fires when moves over scrol
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 如何随着分辨率的变化自动调整大小和调整表单控件

    我注意到某些应用程序会更改控件的位置以尽可能适应当前的分辨率 例如 如果窗口最大化 则控件的设置方式应使整个 GUI 看起来平衡 是否可以使用 C 在 Visual studio 2010 中制作或实现此功能 Use Dock http m

随机推荐