[英]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.