帶選單的無邊框窗體

2021-08-26 19:27:50 字數 1036 閱讀 8011

帶選單的無邊框窗體

前幾天做了乙個窗體,是無邊框的,可是在我加了一些右鍵選單後,窗體的邊框就出來了,很是糾結。後來就上網查了一些資料,終於把邊框去掉了,甚至是邊框處的黑色框線。現在拿出來曬曬。

繼續前一篇的文章自定義形狀窗體,把窗體做成自定義的的形狀後,這時,你進行選單編輯後,可能窗體邊框就又回來了,不急,下面我們就一步把邊框再隱藏起來。

一,首先是一種很直接的解決方案:

要解決這點,vb自身做不到,需要用到api函式

那個邊框,其實是窗體樣式的一種(ws_border),用setwindowlong修改gwl_style即可。

這是宣告塊

private declarefunction setwindowlong lib "user32" alias "setwindowlonga"(byval hwnd as long, byval nindex as long, byval dwnewlong as long) as long

private constgwl_style = (-16)

然後在窗體載入模組中加入

:setwindowlongme.hwnd, gwl_style, lstyleandnotws_sizebox

這時,你的窗體就如你所願了。

二,下面是間接達到目的的方法

1.另外做乙個窗體form2,在form2中設定form1中需要的選單。然後在form1中呼叫form2的右鍵選單。

privatesubform_mousedown(buttonasinteger,shiftasinteger,xassingle,yassingle)

ifbutton=2then

popupmenu form2.popmenu

endif

endsub

2.做乙個使用者自定義控制項,然後新增到窗體中。

靠使用者自定義控制項來實現你的隱式功能,不過這樣就不是右鍵單擊功能了,屬於曲線救國的策略了。

拖動無邊框窗體

frm main.cs 1 using system 2using system.collections.generic 3using system.componentmodel 4using system.data 5using system.drawing 6using system.linq ...

C 移動無邊框窗體

private point mouseoffset private bool ismousedown false private void form1 mousedown object sender,system.windows.forms.mouseeventargs e private void...

WPF 無邊框窗體設定

網路上流傳的無邊框wpf窗體可以說是有點簡陋了.如最大化後無法繼續拖拽移動,最大化後遮住工作列等.我從外網上查詢寫了乙個較為完整的無邊框窗體設定.視窗屬性xaml 視窗陰影xaml 視窗系統邊框屬性xaml 後台 private bool mrestorefordragmove public mai...