Time of Update: 2018-12-03
嵌入式的.net 開發,我們無法重寫WndProc來過濾自訂訊息。我的項目中曾這樣實現過,今天有網友問,我就貼在部落格中。希望對大家有個協助。 using System;using System.Linq;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using
Time of Update: 2018-12-03
using System;using System.Drawing;using System.Drawing.Imaging;using System.Threading;using System.Windows.Forms;public class GifPlayer{ private bool _playing = false; public bool Playing { get { return _playing;
Time of Update: 2018-12-03
源自一篇文章:http://topic.csdn.net/u/20100719/21/25879eed-7555-4ce6-b6ec-e00271838b5a.html?seed=505778035&r=67090922#r_67090922 其實類似的東西以前寫過,再次出現,就又寫了一次,避免再寫下一次重造車輪子,貼在部落格上好了。 //Created by wuyazhe @2010-7-20//引用時請保留作者聲明using System;using
Time of Update: 2018-12-03
對於google中和csdn中沒有正確嚴謹的vb6判斷字串中是否包含漢字,要麼簡單的判斷是否asc()傳回值小於0(這樣只能判斷是否為雙位元組的字串,比如韓文、日文、中文、阿拉伯文,無法確定為中文),難怪人家說我們vb6的都是初級新手用的。判斷漢字的做法,都如此不嚴謹。給出一個比較嚴謹的判斷是否包含中文方法好了。希望日後有人搜尋到,能夠有協助。建立表單,放一個按鈕,預設名字,粘貼如下代碼在字碼頁面。Private Sub Command1_Click() Dim s1, s2, s3,
Time of Update: 2018-12-03
資源化,在vc中,是一個檔案。我們只要建立對應的語言版本的資源就可以了。但不能即時的自動切換,接觸也不深,還沒用到需要即時切換語言的功能。前幾天看到網友提問,粗略的看了一下,以為有答案,結果2天了,還掛在論壇上,回想當年自己剛工作時的辛苦,不由想寫一個實現給他解救一下,呵呵。實際試了一下,還是蠻簡單的。建立一個表單,在上面放1個Panel,Panel上放一個按鈕,這是為了示範嵌套效果,然後Panel外在放2個按鈕。依次添加click方法,代碼如下,不足120行搞定。using
Time of Update: 2018-12-03
實在不是有感而發,只是此類問題反覆出現,自己每次都怕別人看不懂而寫範例,實在累,就寫一次,寫完整注釋,貼在部落格。以後貼地址,方便一點。//測試的表單public class TestForm : Form{ //建立一個Button對象 private Button button = new Button(); //建構函式 public TestForm() { //設定按鈕的屬性 button.Size = new Size(150
Time of Update: 2018-12-03
說來很簡單,GetType().GetField("事件名",BindingFlags.Instance | BindingFlags.NonPublic);然後調用GetValue就可以得到對應的委託了。既然有委託了。調用GetInvokeList就可以了。需要注意一點,vb.net的事件,反射時需要在事件名後面多寫一個Event。不多說。分別貼出代碼供參考和自己備用,雖然實在簡單到不需要備份例子。以防萬一吧。c#using System;using
Time of Update: 2018-12-03
Lingoes翻譯家的功能做的很好,但它的彈窗真讓人噁心,最重要的是不知道為什麼它調用ActiveX時總會出錯,導致還會彈出另外一個系統彈窗,讓我很不爽。在網上找到一個解決辦法。C:\Users\使用者名稱\AppData\Roaming\Lingoes\Translator\2.8.1-cn\update檔案夾下的tips.xml刪除,並建立一個通名的檔案夾。重新啟動軟體就可以了。再也不會有討厭的靈格斯彈窗了。
Time of Update: 2018-12-03
對於很多事物.都在不斷變化.也就是說.在不斷變化的情況下.我們必須能夠得到其相互關聯的對象之間的變化.也就是能夠通知到其他對象.但不同於牽一動百的情況因為畢竟只是告訴相互關聯的對象與之對應的數值才發生變化.換句話就是某個對象的狀態發生變化.於它相對應的一組對象將要隨著變化.這裡就引出了觀察者.通知者的對應關係.觀察者發現變化.通知者就告訴每個與之相關的對象都發生相應的變化.這也就是所謂的Observer模式.如同往常一樣我們還是從抽象對象開始下面還是假設一種情況.假設你是個小學生.你的成績提高
Time of Update: 2018-12-03
某些情況.你也許希望當你改變某一個個體.而使得整個系統的其他與之關聯的個體也能感應到並作出正確的判斷.這種情況很常見.如同.當你對你的主系統晶片升級的時候.你的整體效能也得到相應的提高.(現實中不一定.我只是打個比方).那麼很明顯,你的其它組件也感應到了主系統的效能的改變.也就是說.主系統傳遞給沒個與之關聯的子系統.我現在升級了.你們會得到更多的輔助效能的提升.這樣就達成了局部範圍的成功就帶動了整體的優越性.那麼如何才能達到這一目的呢?顯然必須提出一種心的解決方案.Composite組合的意思
Time of Update: 2018-12-03
假如有一種拼圖可以拼貼成任何圖形.那麼我們只要生產出這種拼圖的單個組件就可以了.那樣就會使複雜的圖形變的簡單化.也就是說我們只用設計每一個單個步驟就可以了.這樣做的好處是什麼呢?很顯然.我們在利用元件生產產品.而不需要直接生產一個巨大的產品.因為可能這些元件本身就具有通用性.另外的好處是.來自與其本身的複雜性.因為要生產就必須要組裝.而把生產和組裝分開來考慮.那麼複雜性就會有所降低.也就是所謂的解偶.只做單一考慮那麼這裡就提供了兩個重要職能.一個是負責生產組件的Builder另外一個是負責組合
Time of Update: 2018-12-03
二進位序列化首先。你被序列化的類需要用[Serializable]特性修飾,例如:[Serializable]public class AA{ public int i = 5;} 那麼你可以用如下方法序列化和還原序列化:/// <summary>/// 序列化為二進位位元組數組/// </summary>/// <param name="request">要序列化的對象 </param>///
Time of Update: 2018-12-03
感覺有點政治的味道.當然.我們並不討論政治.只是在說明很多情況下都必須進行的一種措施事實上.當你並不想為每一個子系統建立獨立的操作的時候.你也許更加希望能夠有一個單一的操作方案可供選擇.那要不必為每個子系統都尋求其特有的操作方案.使操作變的單一.Facde就可以做到這一點.假設你有三個播音裝置.分別使CD 磁帶機,Mp3 它們分別有自己獨立的操作放案.這讓你很頭痛因為你必須掌握三套類似卻有相對獨立的方案.那麼我們考慮如何解決class CDPlay{ private string
Time of Update: 2018-12-03
pacman -Sy abc #和源同步後安裝名為abc的包pacman -S abc #從本機資料庫中得到abc的資訊,下載安裝abc包 pacman -Sf abc #強制安裝包abc pacman -Ss abc #搜尋有關abc資訊的包 pacman -Si abc #從資料庫中搜尋包abc的資訊 pacman -Qi
Time of Update: 2018-12-03
[DllImport("user32.dll", EntryPoint = "RemoveMenu")]public static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags);[DllImport("user32.dll", EntryPoint = "GetSystemMenu")]public static extern IntPtr GetSystemMenu(IntPtr hwnd, int
Time of Update: 2018-12-03
時間過得真快,又開學了兩星期了。兩個星期來,我每次上課坐在第一排,告訴自己要好好學習,不能再像前兩年一樣荒廢生命了,已經回到了本部,沒有任何理由可以為頹廢做辯護。這個暑假是我有生以來最有意義的。我做了網路編輯,做了聯通促銷,給老師做了項目,在學校崗位值班。每天都很忙碌,但也沒有覺得過得很苦,我用我自己賺的錢在生日時請朋友吃飯,後來又給自己買了個平板電腦以方便學習。滿滿的變得不再那麼在乎別人對我的態度。以前總是覺得我做什麼事時別人總在看著我,但現在不會了。我以前自以為的強迫症也不知哪裡去了。從前我
Time of Update: 2018-12-03
充分發揮我的特長,充分享受我的愛好,就像HP或者其他很強的公司的創始人一樣。 充分高效的利用我的時間,享受我的時間。沉迷於技術,投資,愛情和運動。 去改進那些我想要改進的東西,去記下我的創新的新思想,努力的去實現他們。 不要再無所事事,如果對目前工作中的某些東西不感興趣,就迅速地把他們完成。 去享受創業中的挫折吧,讓這一切都成為我美好的回憶。 再一次開始吧,我的生命、我的自由。
Time of Update: 2018-12-03
建立一個windows application,吧program.cs檔案替換為以下內容即可。using System;using System.Diagnostics;using System.Runtime.InteropServices;using System.Windows.Forms;namespace CSharpWin08{ static class Program { [DllImport("user32.dll", EntryPoint =
Time of Update: 2018-12-03
我也一直不明白.net cf下為什麼要把這些功能給精簡掉,最終 .net依然需要底層實現的功能,訊息處理。無奈,我們需要自己實現,很多基本內容,比如子類化,捷徑,比如文字框的點擊事件,我們這裡不介紹前幾項,那不是重點。 首先,我們需要對textbox子類化,使用SetWindowLong將預設的訊息處理註冊到我們自己的一個函數,然後記錄下傳回值,傳回值是表示原來函數的指標,然後在我們的函數中判斷WM_LBUTTONDOWN訊息的獲得。 關鍵代碼展示using
Time of Update: 2018-12-03
using System;namespace CSharpConsole01{ public static class ExternClass { public static int MyParse(this string text) { text = text.PadLeft(10, '0'); if (text[0] < '0' || text[0] > '9' ||