WinForm真入門(5)——控件的基類Control

控件的基類–Control

  • 用于 Windows 窗體應用程序的控件都派生自 Control類并繼承了許多通用成員,這些成員都是平時使用控件的過程最常用到的。
  • 無論要學習哪個控件的使用,都離不開這些基本成員,尤其是一些公共屬性。由于 Conlrol 類規范了控件的基本特征,因此在學習如何使用各種控件之前,先介紹 Control類
  • 可以簡單理解為 WinForm程序 == 一些控件組合 + 事件 + 業務邏輯 組成。控件是非常重要的。

本節主要介紹 Control類的一些基本屬性,剩下一些內容會留到后面在介紹如何自己開發控件時再討論。

一、Control類的一些常用屬性

1、“Name”屬性
控件實例的名稱,通常通過“屬性”窗口設置,控件實例名稱與控件變量名稱相同,以便在代碼中能夠引用。
在這里插入圖片描述

指示在控件的容器被調整時,控件緊貼著哪個方向的邊沿。比如,一個窗口中放置了一個按鈕,并將按鈕的Anchor屬性設置為Right+Boltom,當用戶調整窗口的大小時,按鈕將保持與窗口的底部和右邊沿的距離不變。下圖為窗口被調整大小之前按鈕的位置,下圖為窗口被調整大小后按鈕的位置,可以看到,按鈕始終緊貼著窗口的右下角不變。
調整前如下:
在這里插入圖片描述

調整后如下:
在這里插入圖片描述
3、“Margin和Padding”屬性
Margin屬性與Padding屬性都表示邊距。如圖所示,A、B、C三個控件形成嵌關系假設控件B為當前控件,即以B控件作為參考。Margin指的是B控件與它的父容器A邊沿之間的距離;Padding指的是控件B與它的子級控件C之間的邊距。所以,Margin與Padding是相對值。
在這里插入圖片描述
4、“Visible”屬性
指示控件是否可見,如果為true,則用戶可以看到該控件,否則用戶將看不到該控件
5、“Enabled”屬性
指示控件是否可用。如果為true,說明控件處于可用狀態;如果為false,表示控件不可用、控件將不與用戶進行任何交互
6、“Font”屬性
表示控件中所呈現文本的字體。包括字體、字體大小、是否加粗等
7、“ForeColor、BackColor和Backgroundlmage”屬性
ForeColor屬性表示前景色,即控件上星現的文本的顏色;BackColor展性表示控件的背景色;BackgroundImage屬性可以提供一個像實例來繪制控件的背景。
8、“Dock”屬性
指示控件如何填充容器中的可用空間。如果設置為Fill 則表示控件將占滿所有可用空間;如果設置為Top,則表示控件將占用容器上方的所有空間;如果設置為Left,則表示控件將占用容器的左側所有空間;如果設置為Right,則表示控件將占用容器的右側所有空間;如果設置為Bottom,則表示控件將占用容器的下方所有空間;
9、“Location與Lef、Top”屬性
表示控件在容器中的位置,如果控件是窗口,那么它的位置就相對于桌面坐標(屏落坐標)而定。由于Location屬性的類型是Poini結構,是值類型,因此不能直接修改其X和Y的值,而是向Locaton屬性賦一個新的Point實例;也可以直接設置Lef屬性(X坐標)和Top屬性(坐標)的值來調整控件的位置
10、“Size與Width、Height”屬性
表示控件的大小,由寬度和高度兩個值決定。與Locaton屬性一樣,Size屬性的類型是Size結構,是值類型,不能直接修改,必須將一個新的Size實例賦給Size屬性;或者直接修改控件的Width和Height屬性
11、“Cursort”屬性
獲取或設置當鼠標指針位于控件上時顯示的光標。


二、Control類的一些常用事件

1、Click:當控件被單擊時發生。
2、DoubleClick:當控件被雙擊時發生。
3、GotFocus 和 LostFocus:分別當控件獲得或失去焦點時發生。
4、KeyDown、KeyPress 和 KeyUp:分別當控件有焦點時,按下、按下并釋放、釋放一個鍵時發生。
5、MouseDown、MouseEnter、MouseMove、MouseHover、MouseLeave 和 MouseUp:分別當鼠標在控件上按下、移入、移動、懸停、移出和釋放時發生。
6、Paint:當控件需要重繪時發生。
7、Resize:當控件的大小發生變化時發生。
8、DragDrop、DragEnter、DragLeave 和 DragOver:與拖拽操作相關的事件。

三、控件布局時注意點:控件的Z順序

什么是控件的Z順序?當窗體或容器控件中的控件在布局過程中發生重疊時,會出現層次性,Z順序較大的控件會遮擋Z順序較小的控件,即放在頂層的控件會擋住放在底層的控件。Z順序大致結構如圖所示:
在這里插入圖片描述

Winform Z順序核心解析

1、Z順序基礎概念

  • Z順序(Z-Order)是Winform中決定控件堆疊層級的屬性,沿窗體的Z軸(深度方向)排列。Z序值較高的控件會覆蓋較低值的控件,離窗體越近的控件優先級越高?。

2、設計時調整Z順序

  • 圖形化操作?:
    右鍵目標控件 → 選擇【置于頂層】(Bring to Front)或【置于底層】(Send to Back),直接調整其顯示層級?。
    在這里插入圖片描述
    點擊“置于頂層”后,A控件會跑到B控件上方,如下圖:
    在這里插入圖片描述

?布局影響?:
控件停靠(Dock屬性)時,Z順序會影響停靠優先級。較近的控件優先占據停靠區域,較遠控件則在剩余空間中調整?。


3、編程方式動態調整
?常用方法?:

  • BringToFront():將控件提升至最頂層。
  • SendToBack():將控件移至最底層?。

?精細控制?:

  • 使用Controls.SetChildIndex()方法,通過指定索引值調整子控件的Z序。例如:
this.Controls.SetChildIndex(specificControl, 0);          // 置頂
this.Controls.SetChildIndex(anotherControl, Controls.Count -1); // 置底

此方法適用于容器內的子控件層級調整?。


4、注意事項

  • 性能優化?:
    若父控件包含大量子控件,頻繁調用SetChildIndex可能影響性能。建議減少調用頻率或批量操作?。

  • 跨線程操作?:
    在非UI線程中調整Z順序時,需通過Invoke或BeginInvoke方法確保線程安全?。

  • 視覺效果增強?:
    可通過調整控件的Opacity、BackColor等屬性,輔助區分重疊控件的顯示層次?。


5、Z順序與布局優先級

  • Z順序不僅影響顯示層級,還與控件的停靠(Dock)、錨定(Anchor)等布局屬性交互。例如:停靠控件按Z序從近到遠依次布局,后停靠的控件可能被覆蓋?。

總結:本章主要講解了,控件的基類Control的常用屬性、Control類的一些常用事件,還有控件的Z順序,掌握他們,對于學好WinForm 是至關重要的。當然,隨著后面的章節,大家會掌握的越來越熟練。如果對你有所幫助的話,歡迎點贊、關注加收藏!!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RAG(檢索增強生成)系統,提示詞(Prompt)表現測試(數據說話)

在RAG(檢索增強生成)系統中,評價提示詞(Prompt)設計是否優秀,必須通過量化測試數據來驗證,而非主觀判斷。以下是系統化的評估方法、測試指標和具體實現方案: 一、提示詞優秀的核心標準 優秀的提示詞應顯著提升以下指標: 維度量化指標測試方法事實一致性Faithfulness …

Appium的學習總結-Inspector參數設置和界面使用(5)

環境搭建好后,怎么使用呢? 環境這里使用的是: Appium的Server端GUI 22版本 Inspector需要單獨下載安裝,GUI里并沒有集成。 (使用Appium v1.22.0,查看元素信息需要另外安裝下載Appium Inspector) 操作&…

I/O進程3

day3 五、進程 7.函數接口 7.1創建子進程 pid_t fork(void);功能:創建子進程返回值:成功:在父進程中:返回子進程的進程號 >0 在子進程中:返回值為0; 失敗:-1并設置errno 特點 1.子進程幾乎…

k8s 1.24.17版本部署(使用Flannel插件)

1.k8s集群環境準備 推薦閱讀: https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 1.1 環境準備 環境準備:硬件配置: 2core 4GB磁盤: 50GB操作系統: Ubuntu 22.04.04 LTSIP和主機名:10.0.0.231 master23110.0.0.232 worker23210.0…

網絡編程—TCP/IP模型(UDP協議與自定義協議)

上篇文章: 網絡編程—Socket套接字(TCP)https://blog.csdn.net/sniper_fandc/article/details/146923783?fromshareblogdetail&sharetypeblogdetail&sharerId146923783&sharereferPC&sharesourcesniper_fandc&sharefro…

GNSS有源天線和無源天線

區別 需要外部供電的就是有源天線,不需要外部供電的是無源天線。 無源天線 一般就是一個陶瓷片、金屬片等,結構簡單,成本低廉,占用空間及體積小,適合于強調緊湊型空間的導航類產品。 不需要供電,跟設備直…

網絡編程—TCP/IP模型(IP協議)

上篇文章: 網絡編程—TCP/IP模型(TCP協議)https://blog.csdn.net/sniper_fandc/article/details/147011479?fromshareblogdetail&sharetypeblogdetail&sharerId147011479&sharereferPC&sharesourcesniper_fandc&sharef…

基于金字塔視覺變換的類引導網絡高分辨率遙感圖像高效語義分割

Class-Guidance Network Based on the Pyramid Vision Transformer for Ef?cient Semantic Segmentation of High-Resolution Remote Sensing Images 摘要 多分類語義分割中類之間的小差異和類內的大變化是全卷積神經網絡的“編碼器-解碼器”結構沒有完全解決的問題&#…

基于人工智能的高中教育評價體系重構研究

基于人工智能的高中教育評價體系重構研究 一、引言 1.1 研究背景 在科技飛速發展的當下,人工智能技術已廣泛滲透至各個領域,教育領域亦不例外。人工智能憑借其強大的數據處理能力、智能分析能力和個性化服務能力,為教育評價體系的創新與發…

DeepSeek在互聯網技術中的革命性應用:從算法優化到系統架構

引言:AI技術重塑互聯網格局 在當今快速發展的互聯網時代,人工智能技術正以前所未有的速度改變著我們的數字生活。DeepSeek作為前沿的AI技術代表,正在多個互聯網技術領域展現出強大的應用潛力。本文將深入探討DeepSeek在搜索引擎優化、推薦系統、自然語言處理以及分布式系統…

數字游戲(繼Day 10)

主體: #include<stdio.h> #include<time.h> #include<stdlib.h>#include"mygetch.h"#define MAX 51 //定義測試字母的最大長度void help() {printf("\n****************************************");printf("\n*輸入過程中無法退出…

談談模板方法模式,模板方法模式的應用場景是什么?

一、模式核心理解 模板方法模式是一種??行為設計模式??&#xff0c;通過定義算法骨架并允許子類重寫特定步驟來實現代碼復用。 如同建筑圖紙規定房屋結構&#xff0c;具體裝修由業主決定&#xff0c;該模式適用于??固定流程中需要靈活擴展??的場景。 // 基礎請求處理…

2024 Jiangsu Collegiate Programming Contest H

記錄一下為數不多的網絡流 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc.h> #include <execution> using namespace std; using i64 long long; using i128 __int128;template <typename T>struct MCFgraph{struct …

Hadoop序列化與反序列化

一、Hadoop序列化概述 &#xff08;一&#xff09;什么是序列化和反序列化 序列化&#xff1a;序列化是將對象&#xff08;如Java中的類實例&#xff09;轉換為字節序列的過程。在Hadoop中&#xff0c;數據在分布式系統中傳輸或者存儲到磁盤時&#xff0c;需要將數據對象序列…

FreeRTOS臨界區

在FreeRTOS中&#xff0c;臨界區通過關閉可管理的中斷來保護共享資源&#xff0c;具體關閉的中斷層級由configMAX_SYSCALL_INTERRUPT_PRIORITY宏定義決定。以下是關鍵點解析&#xff1a; 中斷優先級分類&#xff1a; 高優先級中斷&#xff1a;數值低于configMAX_SYSCALL_INTERR…

cdw2: TypeScript

一、javascript的問題 二、初識typescript https://mp.weixin.qq.com/s/wnL1l-ERjTDykWM76l4Ajw 三、類型 二進制&#xff1a;ob開頭&#xff0c;八進制&#xff1a;0o開頭&#xff0c;十六進制&#xff1a;0x開頭 開發中不這樣寫 這樣寫 匿名函數的參數最好不要…

Qt中的元對象系統

Qt的元對象系統(Meta-Object System)提供了對象間通信的信號和槽機制、運行時類型信息和動態屬性系統。 元對象系統基于以下三個方面&#xff1a; (1).QObject類&#xff1a;為可以利用元對象系統的對象提供了基類。 (2).Q_OBJECT宏&#xff1a;用于啟用元對象功能&#xff0c;…

深入理解重排(Reflow)與重繪(Repaint),寫出高性能 CSS 動畫

在前端開發中&#xff0c;CSS 動畫是提升用戶體驗的重要手段&#xff0c;但很多開發者在使用動畫時并不了解瀏覽器背后的渲染機制&#xff0c;導致動畫卡頓甚至影響整體性能。本文將帶你深入理解 CSS 中的兩大核心概念 —— 重排&#xff08;Reflow&#xff09; 與 重繪&#x…

<貪心算法>

前言&#xff1a;在主包還沒有接觸算法的時候&#xff0c;就常聽人提起“貪心”&#xff0c;當時是layman&#xff0c;根本不知道說的是什么&#xff0c;以為很難呢&#xff0c;但去了解一下&#xff0c;發現也不過如此嘛&#xff08;bushi)&#xff0c;還以為是什么高級東西呢…

大模型快速 ASGI 服務器uvicorn

基礎概念類 1. 什么是 Uvicorn&#xff0c;它的作用是什么&#xff1f; 答案&#xff1a;Uvicorn 是一個基于 Python 的快速 ASGI&#xff08;異步服務器網關接口&#xff09;服務器。它的主要作用是作為 Web 應用程序的服務器&#xff0c;負責接收客戶端的請求&#xff0c;并…