自己動手用c#寫控制項(下)
因為我們這個控制項是實現背景漸變及文字填充,所以override paint事件以完成自畫。
為了完成override,現在以下的準備工作(寫幾個在paint事件用的著的事件).
//使用角度的方法漸近重畫button
private void drawbuttonwithangle(graphics dbg)
使用模式的方法漸近重畫button
private void drawbuttonwithmode(graphics dbg,lineargradientmode mode)
//重畫button的文字(text),不使用圖案填充
private void drawbuttontext(graphics dbg)
//override drawbuttontext函式,使之可以用圖案填充文字
private void drawbuttontext(graphics dbg, hatchstyle hs)
好了,現在開始重寫paint事件了.
protected override void onpaint(painteventargs pe)
好了,現在大功告成了,進行儲存,生成。
建立測試專案
1. 在「檔案」選單上,指向「新增專案」,然後單擊「新建專案」以開啟「新增新專案」對話方塊。
2. 選擇「visual c# 專案」節點,然後單擊「windows 應用程式」。
3. 在「名稱」框中鍵入 test。
4. 在解決方案資源管理器中,右擊測試專案的「引用」節點,然後從快捷選單中選擇「新增引用」以顯示「新增引用」對話方塊。
5. 單擊標記為「專案」的選項卡。
6. 雙擊 lineargradientbuttonlib 專案,並注意該專案此時出現在「選定的元件」窗格中。
新增引用後,應將新控制項新增到工具箱。如果您的控制項已經出現在工具箱中,則應該跳過下一節。
將控制項新增到工具箱
1. 右擊工具箱,然後從快捷選單中選擇「自定義工具箱」。
「自定義工具箱」對話方塊開啟。
2. 選擇「.net 框架元件」選項卡並單擊「瀏覽」。瀏覽到 lineargradientbuttonlib/bin/debug 資料夾並選擇 lineargradientbuttonlib.dll。
lineargradientbutton 出現在「自定義工具箱」對話方塊的元件列表中。
3. 在「自定義工具箱」對話方塊中,單擊 lineargradientbutton 旁的框並關閉視窗。
lineargradientbutton 被新增到選定的工具箱的選項卡上。
將控制項新增到窗體
1. 在解決方案資源管理器中,右擊「form1.cs」,然後從快捷選單中選擇「檢視設計器」。
2. 在工具箱中,向下滾動直到到達標記為 lineargradientbutton 的圖示。雙擊該圖示。
窗體上顯示乙個「lineargradientbutton」。
3. 右擊「lineargradientbutton」並從快捷選單中選擇「屬性」。
4. 在「屬性」視窗中檢查該控制項的屬性。注意,它們與標準按鈕公開的屬性相同,不同的是多了我們自己加入的一些屬性
5. 設定本控制項的前景色及背景色,然後可以選擇是否填充文字,是使用角度還是使用系統設定值進行漸變角度的變化。
6. 從「除錯」選單中選擇「啟動」。 出現 form1。
自己動手用python寫豆瓣FM
以前裝過幾次ubuntu,但總是因為缺少一些軟體工具而最終不得不回到windows下。最近又迷上了ubuntu,逐漸從windows系統轉戰ubuntu。這次,openfetion wineqq chrome,還有wps等軟體為這次過度打下了堅實的基礎。希望能夠成為乙個忠實的linux開源愛好者。閒...
自己動手用C擴充套件PHP(二)
在上一章裡我們介紹了如何編寫自己的函式,接下來,我們開始編寫乙個有引數有返回值的擴充套件函式。因為zend沒有正式的函式呼叫語法檢查支援,所以我們在編寫擴充套件函式的時候必須得 小心 也就是我們必須得嚴格地進行呼叫合法性檢查。首先,我們寫乙個函式 include string.h php funct...
自己動手用C擴充套件PHP(三)
在上兩章裡講述了擴充套件模組的基本用法,相信讀者已經能夠構建自己的擴充套件模組了,接下來,我們來看看幾個重要的函式 1 php minit function mymodule 當模組被zend engine ze 載入後,例如apache啟動,載入了php模組,ze會對每乙個擴充套件模組呼叫此函式 ...