原创 如何跨線程調用winform窗體控件

方法一:直接關閉異常,不檢查跨線程調用 private void Form1_Load(object sender, EventArgs e) { // 在Load中加入下面這行代碼:不檢查

原创 C#培訓2019-11-15 Socket 實現兩個應用之間通信(相同/不同主機之間)

Socket利用TCP/IP通信方法,實現一臺主機中兩個應用通信,或者多臺主機中應用的通信。 引用using System.Net.Sockets; using System.Net; 1、Server端設置:Server端主要是

原创 裏式轉換的好處/應用——父類引用指向子類對象——定義一個父類的變量,指向子類的對象

裏式轉換是什麼前面有文章將的很清楚了,詳見: https://blog.csdn.net/qq_41617697/article/details/102931282 這裏講一下好處: ①同一行代碼,因爲new的類不同,因此執行的效

原创 C#培訓2019-10-29 KeyDown事件應用——響應組合鍵“ Ctrl + T ”

響應組合鍵“ Ctrl + T ” 通過這個方法,按下“Ctrl”鍵時,只會進入“KeyDown”事件。按下其餘鍵,會進入到“KeyDown”事件後,依次進入“KeyPerss”事件和“TextChanged”事件。以此實現組合按

原创 父類引用指向子類對象——定義一個父類的變量,指向子類的對象

我定義了一個子類Cat,它繼承了Animal類,那麼後者就是前者是父類。我可以通過 Cat c = new Cat(); 實例化一個Cat對象,這個不難理解。但當我這樣定義時: Animal a = new Cat(); 這樣

原创 什麼時候可以用static修飾方法

static非常好用,但是我們要記得不能濫用,不能只是因爲可以省去new對象的優點,就直接把方法變成靜態方法。 什麼情況下用static修飾方法呢? ①用法很單純,只有這邊用(例如求某個數列的第幾項) ②只是用這個類裏面的方法,就

原创 Socket TcpIP總結

1、一般情況下,接收端和發送端長度要匹配 2、Send()方法在執行的時候,若多次送出了,但是接收方沒有Receive(),此時,可能執行Send時候會有問題(eg:阻塞)。 3、Receive()方法實質上並不是接收,而是從緩存

原创 C# 無需使用的對象怎麼清除

某些時候我們不想用一些對象時,希望它清除掉。這時候怎麼辦呢?或者說什麼時候才能清除呢? 答:首先c#是有垃圾回收機制的,當一個對象沒有任何變量指向它時,就會被垃圾回收器(GC)回收,但是不一定是立刻回收。 其次如果對象中開了一個線

原创 C#培訓2019-11-4 架構討論

jira:確定是否bug,進行處理,最終議題; SyntecIDE(SI):所有軟件都在的 例題1:新增加密功能,有三個類,1、加密管理者;2、檢查是否合法;3、插入檢查方法;4、加密。

原创 C#培訓2019-11-19 Socket 判斷是否還連接着

利用以下代碼就可以判斷是否連接。其中“10”表示等待響應時間(ms) // check is connected if( m_acceptSocket.Poll( 10, SelectMode.SelectRead ) ==

原创 CheckBox放在一個groupbox中 考慮拓展性

1、掛載Checkbox的事件時候,可以先遍歷GroupBox中有幾個CheckBox控件,若有,則直接掛載,這樣的話新增一個Checkbox,不用新增掛載代碼; 2、所有的CheckBox的事件也是掛載同一個方法,這樣就可以避免

原创 不引用dll如何調用dll鏈接庫(動態調用,不知道有沒有這個dll)

類似於人機在Plugin中調用的dll,方法如下: static void Main( string[] args ) { // 讀取dll Assembly assembly = Assembly.LoadFro

原创 VS更換生成路徑以及選擇調試軟件

一、若程式只是要生成的dll文件,則就需要經常複製 1、可以更換生成文件的輸出路徑,修改輸出路徑後,bulid後生成的dll以及其餘的文件都會在選擇的文件夾路徑下 2、定義生成事件宏:可以定義生成事件後的動作,例如複製dll文件到

原创 ListView控件的使用方法(detail模式)

首先將View屬性的值改爲Details; 一、創建表題 參考代碼如下: void Form1_Load( object sender, EventArgs e ) { lsvRecord.Columns.Add(

原创 C#在textbox輸入後,按enter鍵就會相當於按一個按鈕

form裏找到AcceptButton屬性,選擇你要ENTER的按鈕就可以了,不用對按鈕和textbox操作。