如何在windows窗体应用程序中更改拖动阈值

本文关键字:拖动 阈值 应用程序 windows 窗体 | 更新日期: 2023-09-27 18:08:56

我有一个问题,用户拖动对象时选择他们。我尝试了几种方法,使用鼠标事件来设置一个不太敏感的阈值。例如,

我想主要是因为我用的是Piccolo图形引擎。

我知道这可以通过注册表完成,但我不想打乱我的用户注册表项。

另一种选择似乎是使用pinvoke与SystemParametersInfo;和SPI_SETDRAGHEIGHT和SPI_SETDRAGWIDTH参数

我知道如何调用它,

[DllImport("user32.dll", SetLastError = true)]
static extern bool SystemParametersInfo(int uiAction, int uiParam, IntPtr pvParam, int fWinIni);

我知道uiAction参数值为

SPI_SETDRAGHEIGHT = 0x004D

SPI_SETDRAGWIDTH = 0x004C

我知道uiParam是宽度或高度。

除此之外,我被困住了。我真的不懂这些东西,也不知道如何设置最后两个参数。

这里有c++(?)代码

但是我对C变量的知识和将它们转换成c#的知识是可悲的。

所以有人能帮我设置我的应用程序中的拖拽阈值吗?

如何在windows窗体应用程序中更改拖动阈值

我检查了Piccolo源代码,发现拖动阈值依赖于您的系统设置,因此使用PInvoke调用SystemParametersInfo在这里没有帮助。但是,可以通过更改PDragSequenceEventHandler对象的MinDragStartDistance属性来配置阈值。默认值是0,这可能解释了为什么您的用户对它太敏感感到沮丧。

我没有使用Piccolo的经验,但是,所以我不能真正评论如何获得访问该特定属性。