Time of Update: 2018-12-08
在C中,預設的基礎資料類型均為signed,現在我們以char為例,說明(signed) char與unsigned char之間的區別。首先在記憶體中,char與unsigned char沒有什麼不同,都是一個位元組,唯一的區別是,char的最高位為符號位,因此char能表示-127~127,unsigned
Time of Update: 2018-12-08
一種就是使用TreeView的ContextMenuStrip屬性,添加一個新ContextMenuStrip,這個方法非常的簡答直接,缺點是右鍵菜單是整個控制項響應的,也就是說即使沒有右鍵選中節點也是會觸發捷徑功能表的顯示這種方法裡擷取哪一個的node選中是通過這個方法:複製代碼 代碼如下:TreeNode curNode = this.trvFolder.GetNodeAt(e.X,
Time of Update: 2018-12-08
在文字框中輸入一個數字,點擊開始累加按鈕,程式計算從1開始累計到該數位結果。因為該累加過程比較耗時,如果直接在UI線程中進行,那麼當前視窗將出現假死。為了有更好的使用者體驗,程式啟動一個新的線程來單獨執行該計算,然後每隔200毫秒讀取一次累加結果,並把結果顯示到文字框下方的label控制項中。同時,程式支援取消操作,點擊取消累計按鈕,程式將取消累加操作,並把當前累加值顯示到label中。為了方便後面的描述,我把UI線程稱作主線程,把執行累加計算的線程稱作工作者線程。該過程有兩個關鍵點:1:如何在
Time of Update: 2018-12-08
1、school.xml,如下:複製代碼 代碼如下:<?xml version="1.0" encoding="UTF-8"?><!--啟明培訓學校學生資訊: 1、一年級學生 2、二年級學生 --> <school name="啟明培訓學校"> <grades> <grade id="1" name="一年級"> <classes> <class id=
Time of Update: 2018-12-08
1.大端模式,是指資料的低位儲存在記憶體的高地址中,而資料的高位,儲存在記憶體的低地址中;小端模式相反 2.為什麼有大小端之分???
Time of Update: 2018-12-08
複製代碼 代碼如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Xml;using
Time of Update: 2018-12-08
有很多地方需要這樣的功能模組,如系統的日誌輸出,GUI應用必須是單滑鼠,MODEM的聯結需要一條且只需要一條電話線,作業系統只能有一個視窗管理器,一台PC連一個鍵盤。 單例模式有許多種實現方法,在C++中,甚至可以直接用一個全域變數做到這一點,但這樣的代碼顯的很不優雅。
Time of Update: 2018-12-08
做項目時發現Path.Combine方法只能支援傻瓜式的目錄拼接複製代碼 代碼如下://絕對路徑string absolutePath = @"C:\Program Files\Internet Explorer";//相對路徑string relativePath = @"..\TestPath\";//預計拼接結果string splicingResult = string.Empty;Console.WriteLine(string.Format("Path.Combine(\"{0}\"
Time of Update: 2018-12-08
複製代碼 代碼如下:public static Bitmap WaterMarkWithText(System.Drawing.Bitmap origialGif, string text,string filePath) { //用於存放楨 List<Frame> frames = new List<Frame>(); //如果不是gif檔案,直接返回原映像 if (origialGif.RawFormat.Guid != System.Drawing.Imaging.
Time of Update: 2018-12-08
方法一:簡單的方法就是改變picturebox 控制項的borderstyle樣式 currentSelectPicBox.BorderStyle = BorderStyle.Fixed3D; currentSelectPicBox.Refresh();//強制控制項重新繪製方法二 在picturebox控制項加一個矩形框 但是這種方法在程式中反應比較慢。添加矩形框的方法: Graphics pictureborder =
Time of Update: 2018-12-08
這篇文章所要表述的內容的確很簡單,寫之前,我糾結了很久:寫與不寫。平常swap(a,b)值交換,我們基本都是使用第一種方法,對於數學較好的人,可能會想到第二種方法,想到時,一定感覺很好,。對於彙編或對位有理解的人,可能會想到第三種方法,這個方法很妙。但,真正促使我寫這篇文章的,還是第四種方法,妙,真的很妙,先(b = a),我是真沒想到,我想,這麼好的東西,儘管簡單,但值得發表,以此共用。swap(a,b)值交換的四種方法:複製代碼 代碼如下:void swap(int &a, int
Time of Update: 2018-12-08
首先說明invalid_argument是一個類(class invalid_argument;),它的繼承關係如下 exception-------->logic_error--------->invalid_argument invalid_argument原型是 複製代碼 代碼如下:class invalid_argument:public logic_error { public: explicit invalid_argument (const string&
Time of Update: 2018-12-08
現在想從“C:\Program Files\常用綠色軟體\soft\”將‘FinalData.exe'、‘OfficeDiary.exe'、‘DisplayX.exe'這三個程式拷貝到‘C:\WINDOWS\system32'並覆蓋原有的三個,應該怎麼編寫??? 問題1:批處理的編寫支援長檔案夾和長檔名嗎? 問題2:批處理的編寫支援中文檔案夾嗎? 問題3:覆蓋原有檔案會出現提示嗎?如果會,怎麼讓它不提示直接覆蓋了? @echo off for %%a in (FinalData
Time of Update: 2018-12-08
短網址,忽然一下子就冒出來的東西,長長的一個URL,提交過去,出來就只有短短的一個URL了,看起來似乎挺神奇,其實簡單分析一下,明白其中的原理,也是一件很簡單的事情。 短網址的名稱網上叫的有很多種,網址縮短、網址壓縮什麼什麼的,原理說白了就跟您帶了一包東西去超市購物,進超市前把東西塞到超市的儲物櫃,然後拿到一個號碼牌,您進超市就不用再背一大包東西了,只需要拿著一個小小的號碼牌,出來時再把號碼牌還回去,把您的背包拿出來,是一個道理。
Time of Update: 2018-12-08
用於修飾類,方法,屬性和欄位的關鍵字: 首先從最簡單的private,protected,internal,public 解釋。 public 和internal 修飾類。 public,protected,private 修飾方法。 修飾類的時候: public 代表公開,也就是所有程式集都可以訪問這個類。 internal 代表內部的,也就是只有在同一程式集中才能訪問這個類,一般而言同一程式集就是同一個dll。 修飾方法的時候: public 代表公開,也就是所有的類都可以訪問這個方法。
Time of Update: 2018-12-08
api函數: 複製代碼 代碼如下:1.[DllImport("user32.dll")]//取裝置情境 2.private static extern IntPtr GetDC(IntPtr hwnd);//返回裝置情境控制代碼 3.[DllImport("gdi32.dll")]//取指定點顏色 4.private static extern int GetPixel(IntPtr hdc, Point p);主要方法:複製代碼 代碼如下:Timer tim = new Timer();
Time of Update: 2018-12-08
讀語句: 複製代碼 代碼如下:String str = ConfigurationManager.AppSettings["DemoKey"];寫語句:複製代碼 代碼如下:Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 2 cfa.AppSettings.Settings["DemoKey"].Value = "DemoValue"; 3 cfa.Save();
Time of Update: 2018-12-08
觀察者模式 觀察者模式:定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主體對象,這個主題對象在狀態發生變化時,會通知所有觀察者。當一個對象改變需要同時改變其他對象,而且他不知道具體有多少對象需要改變的時候,應該考慮使用觀察者模式。 觀察者結構圖: 使用情境:老闆回來通知員工需要進入工作狀態。 定義觀察者的抽象類別: 複製代碼 代碼如下:abstract class Observer { protected string name; protected ISubject sub;
Time of Update: 2018-12-08
後續內容將包括以下結構模式: 適配器模式(Adapter):Match interfaces of different classes合成模式(Composite):A tree structure of simple and composite objects裝飾模式(Decorator):Add responsibilities to objects dynamically代理模式(Proxy):An object representing another
Time of Update: 2018-12-08
類泛型的約束: 複製代碼 代碼如下: public static class ToModel<T> where T : class, new()定義委託: 複製代碼 代碼如下:public delegate void SetString(string value);建立委託方法: 複製代碼 代碼如下:private static SetString CreateStringDelegate(T model, string propertyName) { MethodInfo mi =