Time of Update: 2017-02-27
.Net內建的產生縮圖的方法是Bitmap.GetThumbnailImage這個方法產生的縮圖不夠清 晰,一般我們會使用Graphics高品質插值發產生清晰的縮圖,這時候大小會不盡人意,怎 麼辦?我們可以使用jpeg壓縮的方法壓縮一下圖片,這樣圖片的大小會縮小到壓縮前的十分 之一。下面是完成這項工作的代碼:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.
Time of Update: 2017-02-27
要實現一個螢幕小鍵盤,需要監聽所有鍵盤事件,無論表單是否被啟用。因此需要一個全域的鉤子,也就是系統範圍的鉤子。什麼是鉤子(Hook)鉤子(Hook)是windows提供的一種訊息處理機制平台,是指在程式正常運行中接受資訊之前預先啟動的函數,用來檢查和修改傳給該程式的資訊,(鉤子)實際上是一個處理訊息的程式段,通過系統調用,把它掛入系統。每當特定的訊息發出,在沒有到達目的視窗前,鉤子程式就先捕獲該訊息,亦即鉤子函數先得到控制權。這時鉤子函數即可以加工處理(改變)該訊息,也可以不作處理而繼續傳遞該訊
Time of Update: 2017-02-27
首先我們讓數組的元素都是由兩個資料域組成,data和cur。也就是說,數組的每一個下標都對應一個data和一個cur。資料域data用來存放資料元素,也就是通常我們要處理的資料;而遊標cur相當於單鏈表中的next指標,存放該元素的後繼在數組中的下標。我們把這種用數組描述的鏈表叫做靜態鏈表。數組的第一個元素,即下標為0的元素的cur就存放備用鏈表的第一個結點的下標;而數組的最後一個元素的cur則存放第一個有數值的元素的下標,相當於單鏈表的前端節點作用,當整個鏈表為空白時,則為0,表示無指向。如圖
Time of Update: 2017-02-27
前面說過,每個線程都有自己的資源,但是代碼區是共用的,即每個線程都可以執行相同的函數。這可能帶來的問題就是幾個線程同時執行一個函數,導致資料的混亂,產生不可預料的結果,因此我們必須避免這種情況的發生。C#提供了一個關鍵字lock,它可以把一段代碼定義為互斥段(critical section),互斥段在一個時刻內只允許一個線程進入執行,而其他線程必須等待。在C#中,關鍵字lock定義如下:lock(expression)
Time of Update: 2017-02-27
先定義一個ListViewHelper類,代碼如下:using System;using System.Collections;using System.Windows.Forms;namespace Common{ /// <summary> /// 對ListView點擊欄位標題自動排序功能 /// </summary> public class ListViewHelper { /// <summary>
Time of Update: 2017-02-27
前段時間簡單的研究了一下.NET操作Lotus Notes郵件的實現,具體的操作包括郵件的讀取和發送,而且都要包含附件,其間參考了《在 Microsoft .NET 應用程式中使用 IBM Lotus Domino》一文,現在把成果和大家分享一下。本文將分為擷取使用者列表、發送郵件、收取郵件三個部分,並會在文末提供範常式序(Visual Studio 2008)的下載。引用如果想使用.NET操作Lotus,我們可以使用 Lotus Domino Objects 通過 COM 來訪問
Time of Update: 2017-02-27
判斷Visio圖紙上是否圖紙有裝置(存在圖元), 有兩種方法,一種是通過Window對象的SelectAll方法,在判斷選擇的集合是否不為空白即可,如下:/**//// <summary> /// 判斷是否有對象選定 /// </summary> /// <param name="window"></param> ///
Time of Update: 2017-02-27
在今天,已有許多的32位應用程式感到,在32位平台上可用的虛擬記憶體受到了一定的限制,對程式開發人員來說,即使是開始關注64位平台時,也不得不維護軟體的32位版本,這就需要一種方法,以使代碼的兩個版本都保持相當的延展性。
Time of Update: 2017-02-27
在空白表單上開啟IME,在C#裡的空白視窗是無論如何也是打不開IME.設 置了this.ImeMode= ImeMode.NoControl也是無法開啟IME的錄字視窗.去 Microsoft 開發論壇上問了一些問題.感謝周雪峰版主與Riquel_Dong 版主給的 指點.用了API函數: ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);終 於把IME給調了出來,它的功能是把輸入與指定的視窗進行關聯.代碼如 下:f (m.Msg ==
Time of Update: 2017-02-27
Borland C++ Builder 對 C++ 進行了擴充,也可以象 Delphi 中一樣自訂類屬性。 對於簡單類型的屬性,可以如下定義:class TSome{protected:int a;int b;int s;int GetSum(void){ return s = a + b ; }void SetSum(int s){ this->s = s ; }public://...其它代碼__property int sum={read=GetSum,write=SetSum};/
Time of Update: 2017-02-27
C#語言有很多值得學習的地方,這裡我們主要介紹C#字元數群組轉換,包括介紹字串類 System.String 提供了一個 void ToCharArray() 方法等方面。C#字元數群組轉換字串類 System.String 提供了一個 void ToCharArray()
Time of Update: 2017-02-27
學習C#反射命名空間之前我們來看看C#反射的概念,反射是一個運行庫類型探索的過 程。 通過反射可以得到一個給定程式集所包含的所有類型的列表,這個列表包括給定類 型中定義的方法、欄位、屬性和事件。也可以動態發現一組給定類支援的借口、方法的 參數和其他相關資訊如基類、命名空間、資料清單等。C#反射命名空間詳細介紹:1.System.Reflection命名空間內的各類型(1) Assembly通過它可以載入、瞭解和操縱一個程式集(2) AssemblyName
Time of Update: 2017-02-27
using system;using system.Runtime.InteropServices;using system.Management;namespace Hardware{/// <summary>/// Hardware_Mac 的摘要說明。/// </summary>public class HardwareInfo{//取機器名public string GetHostName(){return system.Net.Dns.GetHostName()
Time of Update: 2017-02-27
很多時候,會有很多資訊存放在Word文檔中。而我們需要把這些資訊提取出來,另做 它用。而Word的格式是ms的機密,不知道有沒有NB人可以對其做字元流的分析,反正我是 沒這能力也沒這打算。所以就只能用ms提供的組件來進行編程。但ms沒有提供託管的類庫 ,而是提供了對com組件的PIA轉換。具體添加,使用和相關知識,可以參見kaneboy's blog中的http://blog.joycode.com/kaneboy/articles/67688.aspx。高手的講解,很是
Time of Update: 2017-02-27
//十進位轉二進位Console.WriteLine("十進位166的二進位表示: "+Convert.ToString(166, 2));//十進位轉八進位Console.WriteLine("十進位166的八進位表示: "+Convert.ToString(166, 8));//十進位轉十六進位Console.WriteLine("十進位166的十六進位表示: "+Convert.ToString(166,
Time of Update: 2017-02-27
1 建立用於反射使用的DLL建立一個C#類庫項目,拷貝原始碼如下,編譯產生DLL(假如DLL的檔案名稱是TestReflect.dll)1using System;23namespace Webtest4{5 /**//// <summary>6 /// ReflectTest 的摘要說明。7 /// </summary>8 public class ReflectTest9 {10 public ReflectTest()11 {}1213 public string
Time of Update: 2017-02-27
4.9 使用泛型建立唯讀集合問題您希望類中的一個集合裡的資訊可以被外界訪問,但不希望使用者改變這個集合。解決方案使用ReadOnlyCollection<T>封裝就很容易實現唯讀集合類。例子如,Lottery類包含了中獎號碼,它可以被訪問,但不允許被改變:public class Lottery { // 建立一個列表. List<int> _numbers = null; public Lottery() { // 初始化內部列表
Time of Update: 2017-02-27
4.8 反轉Sorted List裡的內容問題您希望在數組和清單類型中可以反轉sorted list裡的內容同時又維持SortedList和SortedList<T>類原來的功能。無論是SortedList還是泛型SortedList<T>類都直接提供了完成這個功能的方法而又不需要重填列表。解決方案ReversibleSortedList<TKey, TValue>類提供了這些功能,它基於SortedList<TKey,
Time of Update: 2017-02-27
//選擇排序class SelectionSorter{ private int min; public void Sort(int[] arr) { for (int i = 0; i < arr.Length - 1; ++i) { min = i; for (int j = i + 1; j < arr.Length; ++j) { if (arr[j] < arr[min]) min =
Time of Update: 2017-02-27
建立表: create table [表名] ( [自動編號欄位] int IDENTITY (1,1) PRIMARY KEY ,[欄位1] nVarChar(50) default '預設值' null ,[欄位2] ntext null ,[欄位3] datetime,[欄位4] money null ,[欄位5] int default 0,[欄位6] Decimal (12,4) default 0,[欄位7] image null , )刪除表: Drop table