日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows窗体编程(二)

發布時間:2025/5/22 windows 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows窗体编程(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、鼠標事件處理

鼠標事件分為兩種,一種產生EventArgs型參數,另一種產生MouseEventArgs型參數。

1)EventArgs型參數的鼠標事件 舉例如下:

Click單擊鼠標時發生

DoubleClick雙擊鼠標時發生

MouseEnter鼠標進入控件邊界時發生

MouseLeave鼠標離開控件邊界時發生

MouseHover 鼠標停在控件上方時觸發

?

這些事件的處理程序原型如下:

private void Button_Click???? (object sender,????????????????????????????????????????? EventArgs e)

???????????????? 事件處理程序名稱? 觸發此事件的來源對象(此處是產生事件的控件) 包含了與事件相關的一些信息

?

2)MouseEventArgs型參數的鼠標事件 舉例如下:

通過MouseEventArgs型參數,事件處理程序可以獲取鼠標事件的信息,如鼠標位置、單擊次數、按下的是鼠標哪個鍵等

MouseClick 單擊鼠標時發生

MouseDoubleClick 雙擊鼠標時發生

MouseDown 按下鼠標時發生

MouseUP 放開鼠標時發生

?

MouseMove 鼠標在控件上方移動時觸發(不管鼠標是否按下)

?

MouseEventArgs類的屬性:

Button 記錄按下的是左鍵、右鍵還是中鍵

Button屬性的值是MouseButtons枚舉類型

? 成員名稱 說明
Left 鼠標左按鈕曾按下。?
Middle 鼠標中按鈕曾按下。?
None 未曾按下鼠標按鈕。?
Right 鼠標右按鈕曾按下。?

Clicks 記錄鼠標連續單擊次數,用來處理“三擊”等事件?? 不會用!

?

Delta 鼠標滾動的轉動量

X 事件觸發點的X坐標

Y 事件觸發點的y坐標

?

這些事件處理程序的原型如下:

private void Button_MouseClick(object sender,MouseEventArgs e)

?

相關知識補充:

書中程序中的Color結構屬于 System.Drawing空間。 它的公共屬性為各種顏色。

?

2、鍵盤事件處理

鍵盤事件也分兩種:一種產生KeyPressEventArgs型參數,一種產生KeyEventArgs型參數。

1)部分產生KeyPressEventArgs型參數的鍵盤事件

Keypress 敲擊鍵盤上的按鍵時發生

KeyPressEventArgs型參數含有與按鍵對應的信息,其類的屬性如下:

KeyChar 返回與按鍵對應的字符

Handled 指出KeyPress事件是否得到處理

這些事件處理程序的原型如下:

private void Form1_KeyPress(object sender,KeyPressEventArgs e)

2)部分產生KeyEventArgs型參數的鍵盤事件

KeyDown 按下按鍵時產生

KeyUp 釋放按鍵時產生

KeyEventArgs型參數含有與按鍵相關的信息,其類的屬性如下:

Alt 是否按下Alt鍵

Control 是否按下Ctrl鍵

Shift 是否按下Shift鍵

Handled 事件是否得到處理

KeyCode 返回與按鍵對應的Keys枚舉值,不包含同時按下的修飾鍵(Alt、Ctrl、Shift)

KeyData 返回與按鍵對應的Keys枚舉值,包含同時按下的修飾鍵

KeyValue 返回一個與按鍵對應的int型數值

Modifiers 返回一個只包含修飾鍵的Keys枚舉值

?

3、圖形框

屬性:Image 設置圖形框中的圖像

??????? SizeMode 控制圖像的顯示方式

事件:Click 單擊圖形框時發生

SizeMode是一個PictureBoxSizeMode型枚舉變量

? 成員名稱???????? 說明
AutoSize??????? 調整 PictureBox 大小,使其等于所包含的圖像大小。?
CenterImage?? 如果 PictureBox 比圖像大,則圖像將居中顯示。如果圖像比 PictureBox 大,則圖片將居于 PictureBox 中心,而外邊緣將被剪裁掉。?
Normal?????????? 圖像被置于 PictureBox 的左上角。如果圖像比包含它的 PictureBox 大,則該圖像將被剪裁掉。?
StretchImage? PictureBox 中的圖像被拉伸或收縮,以適合 PictureBox 的大小。?
Zoom???????????? 圖像大小按其原有的大小比例被增加或減小。?

private void pictureBox1_Click(object sender, EventArgs e){n++;if (n % 2 == 1){this.pictureBox1.Image = global::Key.Properties.Resources.answer;}else{this.pictureBox1.Image = global::Key.Properties.Resources.faces;}

在代碼中會用到? global::命名空間.Properties.Resources.項目資源文件

其實在添加資源圖片時,Form1.Designer.cs中在InitializeComponent()方法中pictureBox1的初始化時,就有類似語句

this.pictureBox1.Image = global::Key.Properties.Resources.faces;

這里的key雖然是空間名,且看似是程序建立初定義的空間名,但實際上與項目的屬性中“默認空間名”相關聯,修改“默認空間名”內容,global::后的命名空間名也必須修改。

?

4、列表框(ListBox)

列表框為用戶提供一組選項,用戶可以選擇其中一個或多個。

方法:

ClearSelected() 取消所有選擇

GetSelected() 檢驗某項是否被選中,若選中返回true,否則返回false

?

事件:

SelectedIndexChanged 選中的項目變化時發生

?

屬性:

Items 由列表框中所有項目(Item)組成的集合

?

SelectionMode 選擇模式,有None、One、MultiSimple、MultiExtended四種選項

屬性值
SelectionMode 枚舉值之一。默認為 SelectionMode.One。

成員名稱????????????? 說明
MultiExtended??? 可以選擇多項,并且用戶可使用 Shift 鍵、Ctrl 鍵和箭頭鍵來進行選擇。??
MultiSimple??????? 可以選擇多項。?
None??????????????? 無法選擇項。?
One???????????????? 只能選擇一項。?

?

SelectedIndex 返回選中項目的索引,若沒有選中項目,則返回-1

SelectedItem 返回選中的項目,若選中多個項目,則返回第一個

SelectedIndices 返回由所有選中項目的索引組成的集合

SelectedItems 返回由所有選中項目組成的集合

MultiColumn 為true時,項目可以多列顯示

Sorted 為true時項目按字母順序排列

Items 是一個由列表框中所有項目(Item)組成的集合,集合是.Net中定義好的一種類,通過該類的方法可以像集合中添加項目或從集合中刪除項目,Item屬性擁有的方法(其實只要是集合類型的都擁有如下方法)如下:

Add() 添加項目

Insert() 插入項目到指定位置

Remove() 刪除項目、參數為要刪除的項目

RemoveAt() 刪除項目、參數為要刪除的項目的索引

Clear() 清空列表框

?

當屬性SelectedMode 選擇MultiExtended時,如果要一次性刪除掉所有選中的選項,可以使用下列方法,即將書中的if語句改為while語句。

private void removeButton_Click(object sender, EventArgs e){while (listBox1.SelectedIndex != -1){this.listBox1.Items.RemoveAt(listBox1.SelectedIndex);}}

?

5、復選列表框(CheckedListBox)

復選列表框派生于列表框ListBox,區別是復選列表框在每個項目(Item)前加了一個復選框。

復選列表框中的項目可以被勾選(Checked)或被選中(Selected),被勾選(Checked)的項目可以有多個,但選中(Selected)的項目只能有一個

因為復選列表框繼承于列表框,所以它繼承了列表框中所有屬性、事件、方法,CheckListBox類的常見屬性和事件如下:

屬性:

Items 由列表框中所有項目(Item)組成的集合

SelectedItem 返回選中(Selected)的項目

SelectedIndex 返回選中項目的索引,若沒有選中項目,則返回-1

CheckedItems 返回被勾選(Checked)的一組項目

CheckedIndices 返回被勾選項目的一組索引

SelectionMode 是否可以多選,模式和ListBox類中一樣

CheckOnClick 為ture時第一次單擊即勾選項目,否則第一次為選中,第二次為勾選

MultiColumn 為true時項目可以多列顯示

Sorted 為true時項目按字母順序排列

?

事件:

SelectedIndexChanged 選中(Selected)的項目變化時發生

?

ItemCheck 勾選(Checked)或取消項目旁的復選框時發生

當觸發ItemCheck事件時,系統會發送給事件處理程序一個ItemCheckEventArgs型參數,ItemCheckEventArgs類的屬性如下:

CurrentValue 表示當前項目勾選狀態,用CheckState型枚舉表示

CheckState枚舉

成員名稱?????????? 說明
Checked????????? 該控件處于選中狀態。?
Indeterminate? 該控件處于不確定狀態。一個不確定的控件通常具有灰色的外觀。?
Unchecked?????? 該控件處于未選中狀態。?

?

NewValue 勾選狀態發生變化后,項目的CheckState值

Index 勾選狀態發生變化的那個項目的索引

?

6、下拉式列表框(ComboBox)

下拉式列表框以下拉清單的形式顯示列表。默認情況下,下拉清單是收起的,單擊向下箭頭可以展開下拉清單。

屬性:

Items 有列表框中所有項目(Item)組成的集合

SelectedItem 返回選中(Selected)的項目

SelectedIndex 返回選中項目的索引,若沒有選中項目,則返回-1

DropDownStyle 下拉式列表框的顯示類型

該屬性是ComboBoxStyle枚舉類型:

成員名稱????????????? 說明
DropDown????????? 文本部分可編輯。用戶必須單擊箭頭按鈕來顯示列表部分。這是默認樣式。?
DropDownList???? 用戶不能直接編輯文本部分。用戶必須單擊箭頭按鈕來顯示列表部分。?
Simple??????????????? 文本部分可編輯。列表部分總可見。?

?

MaxDropDownItems 下拉清單的最大長度

Sorted 為true時項目按字母順序排列

?

事件:

SelectedIndexChanged 選中(Selected)的項目變化時發生

?

7、列表視圖(ListView)

列表視圖可以穿件類似于Windows資源管理器的界面。

屬性:

Items 由列表視圖中所有項目(Item)組成的集合

SelectedItems 列表視圖中所有選定的項目

SelectedIndices 獲取控件中選定項的索引。該屬性是個集合

View 設置列表視圖的顯示方式,共五種

枚舉View的值:

成員名稱?????? 說明
Details???????? 每個項顯示在不同的行上,并帶有關于列中所排列的各項的進一步信息。最左邊的列包含一個小圖標和標簽,后面的列包含應用程序指定的子項。列顯示一個標頭,它可以顯示列的標題。用戶可以在運行時調整各列的大小。?
LargeIcon??? 每個項都顯示為一個最大化圖標,在它的下面有一個標簽。?
List???????????? 每個項都顯示為一個小圖標,在它的右邊帶一個標簽。各項排列在列中,沒有列標頭。?
SmallIcon???? 每個項都顯示為一個小圖標,在它的右邊帶一個標簽。?
Tile???????????? 每個項都顯示為一個完整大小的圖標,在它的右邊帶項標簽和子項信息。

?

Activation 設定激活項目的方式,有Stantard、OneClick、TwoClick三種方式

該屬性是ItemActivation枚舉類型,該枚舉類型的成員如下:

成員名稱??? 說明
OneClick??? 用戶必須單擊以激活項。光標更改為手形指針光標,項文本在用戶將鼠標指針移動到項上時更改顏色。?
Standard?? 用戶必須雙擊以激活項。在用戶將鼠標指針移動到項上時沒有提供任何反饋。?
TwoClick??? 用戶必須單擊項兩次以激活此項。單擊兩次與標準的雙擊不同,這是因為兩次單擊之間的時間間隔可以是任意的。當用戶將鼠標指針移動到項上時,該項文本更改顏色。?

?

MultiSelect 設定是否可以多選

CheckBoxes 設定是否顯示復選框

LargeImageList 用于保存大圖標的ImageList

SmallImageList 用于保存小圖標的ImageList

LabelEdit 設定是否可以編輯項目的名稱

Columns 設置“詳細信息”視圖中的列

GridLines 設定“詳細信息”視圖中是否顯示網格線

ContexMenuStrip 設置列表視圖關聯的右鍵菜單

Sorting 設置項的排序方式(None、Ascending、Descending)

該屬性是SortOrder 枚舉類型,成員如下:

成員名稱????? 說明
Ascending?? 項按遞增順序排序。?
Descending 項按遞減順序排序。?
None????????? 項未排序。?

?

事件:

SelectedIndexChanged 選中的項目改變時發生

ItemActivate 激活項目時發生

ColumnClick 在“詳細信息”視圖中單擊“列標題”時發生

?

在使用ItemActivate()方法時,一般用switch分支,對SelectedIndices的值進行判斷,再進行相應的處理,具體如下:

private void listView1_ItemActivate(object sender, EventArgs e){string myDoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);string myMusic = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);string myPicture = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);switch (this.listView1.SelectedIndices[0])//SelectedIndices是個集合{case 0: Process.Start(myDoc); break;case 1: Process.Start(myMusic); break;case 2: Process.Start(myPicture); break;case 3: Process.Start("iexplore.exe"); break;case 4: Process.Start("notepad.exe"); break;case 5: Process.Start("calc.exe"); break;}}

?

8、樹狀視圖(TreeView)

像文件夾一樣的樹狀層次結構可以用樹狀視圖(TreeView)實現,它能清晰的現實節點(Node)間的層次結構。

屬性:

Nodes 由樹狀視圖中所有節點(TreeNode)組成的集合

SelectedNode 選中的節點

ImageList 設定用于顯示圖標的ImageList

CheckBoxes 設定是否顯示復選框

LabelEdit 設定是否可以編輯節點的名稱

?

事件:

AfterSelected 鼠標單擊節點時發生

AfterChecked 節點的勾選狀態改變時發生

NodeMouseDoubleClick 鼠標雙擊節點時發生

?

9、控件布局

以下兩個控件的屬性 決定了控件在容器中的布局情況,跟著書上例子做一遍很有趣

錨定 Anchor

停靠 Dock

?

在練習期間,發現FormBorderStyle屬性決定了窗體Form1的是否可調節還是固定大小等。

轉載于:https://www.cnblogs.com/365up/archive/2009/11/14/1603152.html

總結

以上是生活随笔為你收集整理的Windows窗体编程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。