簡體   English   中英

如何在Windows Forms應用程序中更改拖動閾值?

[英]How do I change the drag threshold in a windows forms application?

用戶在選擇對象時拖動對象時遇到問題。 我嘗試了幾種使用鼠標事件設置不太敏感的閾值的方法。 例如

我認為它們主要無法正常工作,因為我正在使用Piccolo圖形引擎。

我知道這可以通過注冊表完成,但是我不想弄亂我的用戶注冊表項。

替代方法似乎是將pinvoke與SystemParametersInfo;一起使用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#的知識令人遺憾。

所以有人可以幫我在應用程序中設置拖動阻力閾值嗎?

我檢查了短笛的源代碼,發現拖動閾值依賴於你的系統設置,所以在使用的PInvoke調用SystemParametersInfo不會幫助你在這里。 但是,可以通過更改PDragSequenceEventHandler對象的MinDragStartDistance屬性來配置閾值。 默認值為0,這可能解釋了為什么用戶對它過於敏感感到沮喪。

不過,我沒有使用Piccolo的經驗,因此我無法真正評論如何獲得對該特定資產的訪問權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM