無邊框窗體 使用者控制項 Timer控制項

2022-09-17 18:42:16 字數 2691 閱讀 4350

一、無邊框窗體

1 最大化、最小化以及關閉按鈕製作

實際上就是更換點選前、指向時、點選時的

\..\資料夾名稱... 向上翻乙個資料夾,上面的第乙個\是轉義

\\1.png

");2 窗體動起來

呼叫窗體移動的api,如果有其它控制項覆蓋了窗體,那麼寫好滑鼠按下的事件委 

託就可以了

//

窗體移動api

[dllimport("

user32.dll")]

public

static

extern

bool

releasecapture();

[dllimport(

"user32.dll")]

public

static

extern

bool sendmessage(intptr hwnd, int wmsg, int wparam, int

iparam);

public

const

int wm_syscommand = 0x0112

;

public

const

int sc_move = 0xf010

;

public

const

int htcaption = 0x0002

; [dllimport(

"user32")]

private

static

extern

int sendmessage(intptr hwnd, int wmsg, int

wparam, intptr lparam);

private

const

int wm_setredraw = 0xb;//

記住:在窗體的mousedown事件中 一定要選擇form1_mousedown

private

void form1_mousedown(object

sender, mouseeventargs e)

}

3 讓窗體有陰影

//

陰影//

寫在建構函式上面

private

const

int cs_dropshadow = 0x20000

;

private

const

int gcl_style = (-26

); [dllimport(

"user32.dll

", charset =charset.auto)]

public

static

extern

int setclasslong(intptr hwnd, int nindex, int

dwnewlong);

[dllimport(

"user32.dll

", charset =charset.auto)]

public

static

extern

int getclasslong(intptr hwnd, int

nindex);

//寫在建構函式中

setclasslong(this.handle, gcl_style, getclasslong(this.handle, gcl_style) | cs_dropshadow);

二、後台建立控制項

(1)建立

picturebox p = new picturebox();//

建立控制項,例項化控制項

//設定

建立textbox控制項,例項化

flowlayoutpanel1.controls.add(p);

//放入流式布局的集合中

flowlayoutpanel1.controls.add(tb);

(2)更改控制項屬性

foreach (control ct in

flowlayoutpanel1.controls)

}

三、使用者控制項

1 是由其它控制項所組成的一種使用者自定義控制項

使用者控制項的主體與panel相似,但是它卻又是獨立的乙個類

2 建立

新建項--使用者控制項--命名(當成乙個panel使用)--放入其他控制項,所有內部 

的控制項訪問許可權都要修改。

建立完成後顯示在工具箱。

3 使用

例項化 yonghu yh=new yonghu();//yonghu是我給我建立的這個起的名字

賦值 yh.textbox1.text="";

放入流式布局

4 可以給使用者控制項及其中的控制項加上滑鼠事件

四、timer在元件裡:

enabled - 此控制項是否啟用

interval - 間隔時間,毫秒

tick事件 - 間隔指定時間後要執行的**段

timer就是個執行緒,這個執行緒預設可以跨執行緒訪問物件

拖動無邊框窗體

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...