winform 控制項拖動 滯後

2025-02-03 04:55:24 字數 3729 閱讀 9780

1樓:網友

dllimport("")]

public static extern bool sendmessage(intptr hwnd, int wmsg, int wparam, int lparam);

dllimport("")]

public static extern bool releasecapture();

protected override void onmousemove(mouseeventargs e)

//用來釋放被當前執行緒中某個視窗捕獲的游標。

控制項名。handle, 0x0112, 0xf010 + 0x0002, 0);//向windows傳送拖動窗體的訊息。

2樓:網友

;;這2句取消。除了造成螢幕閃爍沒其他意義。 也是造成控制項總是延後的主因。

c# winform 控制項拖動問題

3樓:網友

自己定義圖示控制項的拖動時,畫圖的效率很成問題。

可以有乙個簡單的方法來實現在背景**上進行圖示拖動的效果,那就是使用listview控制項。

先新增乙個imagelist控制項,把它的images屬性設成幾個圖示。

然後新增乙個listview控制項,把它的backgroundimage屬性設成背景**;把largeimagelist設成剛才新增的imagelist控制項;把view屬性設成largeicon;

把allowdrop設成true;把autoarrange設成false;然後在它的items屬性中新增幾項,把各項的text值和imageindex值(小於imagelist中的**數)設成不同的值。這樣就有點象電腦桌面了。

最後新增拖放事件處理程式就行了:

itemdrag事件。

private void listview1_itemdrag(object sender, itemdrageventargs e)

dragenter事件。

private void listview1_dragenter(object sender, drageventargs e)

dragdrop事件。

private void listview1_dragdrop(object sender, drageventargs e)

4樓:網友

如果認為是重繪太慢,那麼建議自己使用乙個執行緒去重繪。

不過這個閃動好像是通病~ msdn提供有解決方法,見下:

樓上有人說form 的 doublebuffered 屬性改為 true

設定成雙快取,我試過,貌似還是閃動!不知道是不是機子問題!嘿嘿~msdn上說:

對於大多數應用程式,.net framework 提供的預設雙緩衝將提供最佳效果。預設情況下,標準 windows 窗體控制項是雙緩衝的。

可以通過兩種方法對窗體和所創作的控制項啟用預設雙緩衝。一種方法是將 doublebuffered 屬性設定為 true,另一種方法是通過呼叫 setstyle 方法將 optimizeddoublebuffer 標誌設定為 true。兩種方法都將為窗體或控制項啟用預設雙緩衝並提供無閃爍的圖形呈現。

建議僅對已為其編寫所有呈現**的自定義控制項呼叫 setstyle 方法。

建議學習這個要多看msdn

5樓:網友

乙個非常簡單的解決方法,將 form 的 doublebuffered 屬性改為 true 應該就好了。

6樓:草薙在

說明你實現的控制項有些問題 如果窗體有背景的時候 他會先重繪背景 然後在上面繪製控制項 如果你拖動頻繁的話 那麼繪製也很頻繁 尤其是你說的是全屏繪製 你要知道圖形操作是非常昂貴的。

我建議你不要操作控制項拖動 而是做乙個裡面可以包含很多可以拖動項的控制項 並且自己處理繪製方法(而不是響應繪製事件)

winform 控制項 跨窗體拖動

7樓:網友

將控制項頂級話,不屬於某乙個窗體,最後你自己決定放到哪乙個窗體上自己決定就可以了。

8樓:國帥就是我

到另乙個窗體裡面,對嗎。

winform 還未生成時...控制項拖動大小問題

9樓:網友

是不是 用了 「相對定位」 和 「絕對定位」 了。

看看 選項裡面 有個 定位 將「絕對」改為 「相對」就行了。

winform 控制項過多,結果滾動條拖動速度變慢,請問怎麼解決?

10樓:然後去遠足

主要毛病就是你這個控制項太多,本身就有若干個 panel,每個panel 裡還套了若干個 picturebox 和 label,這樣一來你每次滾動相當於重新繪製無數個控制項了。

要麼不要用控制項,改為雙緩衝繪製,把圖和文字分別用 drawimage 和 drawstring 等方法畫出來。但即使這樣,一旦資料量多了一樣很卡。

要麼採用分頁模式,每頁裡面只顯示15-20條記錄。

11樓:子丶夜

把你一些做成使用者空間,然後用雙快取。

winform 如何實現在panel中拖動控制項?並顯示其控制項座標

12樓:網友

可以實現的頌讓派,主要涉及panel的drag事件和button的drag和mousedown事件。

需要**的話可滑大以hi我野賀~~~

c# winform程式設計中 拖動控制項對齊線不出現了

13樓:網友

讓我來告訴你把。。。以vs2008為例。。工具--》選項--》windows 窗體設計器--》常規--》佈局設定--》layoutmode 將snaptogrid 改為snaplines,儲存後,關閉要設計的窗體,然後重新開啟,就可以看到對齊線了。

希望對你有用。別忘記給分。

14樓:

在 windows 窗體設計器的「選項」對話方塊中選擇「網格線對齊」佈局模式。

有關更多資訊,請參見 「選項」對話方塊 ->windows 窗體設計器」->常規」。 現在所有控制項都將自身與網格線上的點對齊。

winform 中控制項太多 載入緩慢 像乙個接著乙個出來的一樣

15樓:網友

換臺配置高點的電腦式式。

16樓:網友

弄個載入等待的頁面擋一下。

17樓:網友

介面反映太慢可以考慮換用wpf

18樓:網友

你的**是多大的?感覺這些控制項也不算多啊。

winform控制項製作

19樓:網友

如果用乙個控制項做不太可能。

通訊這方面的話用label控制項,路燈的狀態現在做如果是做著玩的知可以利用乙個trmer控制項或者用button控制項。

滑鼠放上去顯示路燈的資訊:建議也是用乙個label控制項來做,設定它的mouseenter這個事件來給label賦值路燈資訊。

20樓:

最簡單的方式就用**來做,最複雜的就是用gdi+自己繪製。

21樓:夜夜夜夜丶

弄自己寫的自定義控制項。

winform中如何實現MDI

這個是主窗體的 toolstripmenuitem 的事件 search form 是你窗體的class 能看明白麼。private static search form winform1 private void toolstripmenuitem click object sender,even...

winform中如何實現農曆轉換

公曆轉換成農曆的c 函式2007 08 24 11 41 天干 private static string tiangan 地支 private static string dizhi 十二生肖 private static string shengxiao 農曆日期 private static ...

如何讓winform窗體總在最前

設定topmost屬性為true,如果其他窗體沒有設定此屬性,那麼這個視窗就會永遠在最前。額。你可以試試 啟動一個timer 定時器,將topmost true 放在裡面不知道行否。能不能試著去控制信開啟的那個程式的視窗 多試一下!加油,呵呵!那你就設定一下這個啟動畫面啟動時最小化啊!用this.a...