Time of Update: 2017-02-28
製作不規則表單涉及到API的調用和大量的編程,是件很複雜的事情。下面我們可以使用Borland C# Builder輕鬆的實現一個不規則表單,以下面用一個樣本來講述其製作過程。一.準備不規則表單位元影像二.表單的設定三.代碼的完成一.準備不規則表單位元影像為了方便起見,我們隨便找幾個別的軟體用的Skin。這裡使用金山影霸
Time of Update: 2017-02-28
Type 類提供了大量的屬性和方法,但在一些基礎性開發工作中,Type類功能還有些欠缺,尤其上在處理泛型型別時,如可空類型和泛型集合類型。下面的類就針對這些地方進行擴充。1 public static class TypeHelper2 {3 public static bool IsNullableType(this Type type)4 {5 return (((type != null) && type.IsGenericType) &&6
Time of Update: 2017-02-28
先看一個簡單的類People(將作為測試用的例子):1 public abstract class People2 {3 public bool IsMale { get; private set; }4 public abstract IEnumerable<People> Children { get; }5 }People類有一個Children屬性,返回該People的所有孩子。People類通過Children屬性最終可形成一個People樹。“樹&rdqu
Time of Update: 2017-02-28
在.Net中,System.Object.ToString()是用得最多的方法之一,ToString()方法在Object類中被定義為virtual,Object類給了它一個預設實現:1 public virtual string ToString()2 {3 return this.GetType().ToString();4 }.Net中原生的class或struct,如int,DateTime等都對它進行重寫(override),以讓它返回更有價值的值,而不是類型的名稱。合理重寫的ToS
Time of Update: 2017-02-28
從系列文章開篇到現在,已經實現的很多擴充了,但過多的擴充會給我們帶來很多麻煩,試看下圖:面對這麼多“泛濫”的擴充,很多人都會感到很彆扭,的確有種“喧賓奪主”的感覺,想從中找出真正想用的方法來太難了!儘管經過擴充後的string類很“強大”,但易用性確很差。很多人因此感覺擴充應適可而止,不該再繼續下去...其實這是一種逃避問題的態度,出現問題我們應該主動去解決,而不是去迴避!有很多種方法可以解決以上問題,最簡單的就是使用將擴充
Time of Update: 2017-02-28
Enumerable.Cast<T>用於將IEnumerable轉換為泛型版本IEnumerable<T>。轉換後可盡情享用Enumerable的其它方法(如Where、Select),給我們的編碼帶來極大便利。但MSDN中僅給出一個轉換ArrayList的例子,很多人看了感覺現在都在用List<T>,還有誰會用ArrayList,Cast<T>沒多少用處,除非處理一些之前遺留的一些代碼。其實Cast<T>並非如此簡單,它可以用在很多地
Time of Update: 2017-02-28
Enumerable.Aggregate 擴充方法在System.Linq命名空間中,是Enumerable類的第一個方法(按字母順序排名),但確是Enumerable裡面相對複雜的方法。MSDN對它的說明是:對序列應用累加器函數。備忘中還有一些說明,大意是這個方法比較複雜,一般情況下用Sum、Max、Min、Average就可以了。看看下面的代碼,有了Sum,誰還會用Aggregate呢!public static void Test1(){ int[] nums = new int[] {
Time of Update: 2017-02-28
先看下ScottGu對In的擴充:調用樣本1:調用樣本2:原文地址:New "Orcas" Language Feature: Extension
Time of Update: 2017-02-28
在應用程式中,有時使用者希望將資料從一個控制項中拖到另一個控制項中,此時就需要用到拖放技術。程式開發步驟:(1)建立一個表單,在表單中添加兩個Label控制項和兩個TextBox控制項,並將兩個TextBox控制項分別命名為txtDataTart和txtScoure。(2)將txtDataTart文字框的AllowDrop屬性設定為true。(3)程式主要代碼如下。private void txtDataTart_DragDrop(object sender, DragEventArgs e){
Time of Update: 2017-02-28
1.MouseClick事件該事件發生於按一下滑鼠控制項時。文法:public event EventHandler MouseClickEventHandler:表示將處理不包含事件數目據的事件的方法。樣本 MouseClick事件的使用在表單中單擊任何地方,觸發MouseClick事件,在事件中起動timer控制項,將表單標題變成一個時鐘。程式主要代碼如下。private void frmMouseClick_MouseClick(object sender,
Time of Update: 2017-02-28
由於空格的ASCII碼值是32,因此,在去掉字串中所有的空格時,只需逐一查看字串中的所有字元,並判斷它們的ASCII碼值是不是32即可。去掉字串中所有空格的關鍵代碼如下:private void button1_Click(object sender, EventArgs e){textBox2.Text = textBox1.Text;CharEnumerator myenum = textBox1.Text.GetEnumerator();while (myenum.MoveNext()){
Time of Update: 2017-02-28
1.MouseDown事件當滑鼠指標位於控制項上並按下滑鼠鍵時發生。文法:public event MouseEventHandler MouseDownMouseEventHandler:表示將處理表單、控制項或其他組件的MouseDown、MouseUp或 MouseMove事件的方法。MouseEventHandler委託事件文法:public delegate void MouseEventHandler (Object sender,MouseEventArgs
Time of Update: 2017-02-28
在鍵盤按下鍵然後釋放的過程中有3個事件發生,分別為KeyDown事件、KeyPress事件和KeyUp事件。 KeyDown和KeyUp事件讓應用程式捕捉使用者在鍵盤上按下的特殊鍵或某些特定鍵甚至按鍵組合,只有在想要取得按下鍵或特殊鍵的相關資訊時,才用到KeyDown和KeyUp事件。下面對KeyDown和KeyUp事件分別進行介紹。1.KeyDown事件KeyDown事件在首次按下某個鍵時發生。樣本
Time of Update: 2017-02-28
使映像產生浮雕的效果,主要通過對映像像素點的像素值分別與相鄰像素點的像素值相減後加上128,然後將其作為新的像素點的值。以浮雕效果顯示映像主要通過GetPixel方法獲得每一點像素的值,通過SetPixel設定該像素點的像素值。代碼如下:private void button1_Click(object sender, EventArgs e){ //以浮雕效果顯示映像 try { int Height =
Time of Update: 2017-02-28
有一段時間,Regex學習很火熱很潮流,當時在CSDN一天就能看到好幾個Regex的文章,那段時間藉助論壇以及Wrox
Time of Update: 2017-02-28
這次,我來談一點高深的話題:結構化儲存(Structured
Time of Update: 2017-02-28
【關於字型格式】設定的是第一個字元的顏色,這時richtextBox的rtf中記錄下位置0的顏色,重設text時,在rtf中的位置從位置0開始,因此顏色還是Color.Red,第三次也應該同樣如此richTextBox1.Text = "123";richTextBox1.Select(0, 1);richTextBox1.SelectionColor =
Time of Update: 2017-02-28
異常介紹1、System.Exception類Message屬性:發生異常的原因和異常的內容Souce屬性:拋出異常程式集的名稱StackTrace屬性:發生異常的方法調用情況InnerException屬性:次異常中包含的異常2、try{}catch{}finally{}處理異常1、不帶參數的catch和catch(Exception)是有區別的catch(Exception)可以捕獲所有以Exception類派生的異常,而不帶參數的catch可以捕獲所有異常,不管異常是不是從Exceptio
Time of Update: 2017-02-28
如果利用C#擷取系統有關環境和屬性,這個也是在網上問得比較多的問題,不過大部分只有提問沒有回答,最近正好想做有關方面的東西,整理了一下,提供給大家,希望能給大家提供參考意見:首先需要定義幾個結構(struct) ,便於DllImport作為返回參數調用。以下是代碼:CpuInfo.csusing System;using System.Configuration;using System.Runtime.InteropServices;/**//*** LayoutKind.Automatic:
Time of Update: 2017-02-28
概述何謂模式表單?簡單的可以理解為表單對話方塊,使用者必須在完成該表單上的操作或關閉表單後才能返回開啟此表單的表單。本文不對模式表單的定義、特徵、功能做具體討論,主要把重點放在如何在.net表單應用程式中有效使用模式表單,解決使用模式表單中碰到的常見問題。模式表單的屬性設定在.net中一個System.Windows.Forms.Form類就表示一個表單,通過visual studio 2005設計器能夠直接添加表單,切換到設計模式,在屬性視窗中會顯示屬於該表單的屬性和事件。參照標準的模式表單,