原创 C# List轉DataTable(支持匿名類型)

/// <summary> /// List轉成DataTable /// </summary> /// <typeparam name="T"></typeparam>

原创 責任鏈模式引發的思考

背景: 在業務頻繁迭代的時候,有時候一個菜單頁面對應的後臺代碼會越來越凌亂,一個方法本來就做A、B事情,後面迭代,變成會做A、B、C、D、E事情,且A、B又細分出a1、a2、a3、a4、b1、b2、b3。一個菜單頁開始設計代碼時,通常寫法都

原创 NPOI 設置背景顏色

使用FillBackgroundColor不會起作用,不能使用自定義的顏色。 設置背景顏色代碼: HeadercellStyle.FillPattern = FillPattern.SolidForeground; HeadercellS

原创 Winform 控件座標定位

控件的X,Y軸座標都是相對外面一層容器的位置。如果控件在Panel1,Panel1又在Panel2,則控件座標是根據Panel1計算。 1、通過屬性Location,可以在屬性框設置。 2、通過屬性Left、Top,不在屬性框裏。 us

原创 Winform Enter鍵實現Tab鍵聚焦

在一個容器裏,使用Tab鍵會自動聚焦下一個TabStop屬性爲True的控件,且是按照TabIndex大小順序聚焦。 如果一個該容器的控件已經聚焦完,繼續按Tab鍵,則會自動跳轉到下一個容器(按照容器的TabIndex順序)的控件聚焦。容器

原创 C# 關於Struct的思考

Struct的理論看過好一些,可是工作上基本沒有應用過,Class倒處處都有。難道Struct就沒有什麼使用價值嗎?搜了一下如何在類和結構中做出選擇? ✔️ 如果類型的實例很小且通常壽命很短或通常嵌入其他對象中,請考慮定義結構而不是類。

原创 C# 減少嵌套循環

最近在解決性能優化的問題,看到了一堆嵌套循環,四五層級的循環真的有點過分了,在數據量成萬,十萬級別的時候,真的非常影響性能。 當然,除了關注明顯的循環例如for、foreach,還應該關注隱晦一點的循環,例如datatable.select

原创 UDP發送消息

當只發送給一個終結點。 using System; using System.Net; using System.Net.Sockets; using System.Text; namespace UDPTest { /// <

原创 devexpress winform xtratreelist 節點添加自定義圖片

要求:根據節點行的某個數據來確定動態自定義圖片 如圖: 1、拖出一個控件imageCollection,編輯圖片項 2、設置TreeList的StateImageList爲上面建的imageCollection 3、設置TreeList的

原创 devexpress winform XtraTreeList 單元格事件

舉例:treelistview設置MouseDoubleClick 使用TreeListHitInfo獲取單元格信息: DevExpress.XtraTreeList.TreeListHitInfo hInfo = this.trlZHC

原创 devexpress layoutcontrolitem 裏面控件tabindex不起作用

設置layoutcontrol的EnableAutoTabOrder=false。  

原创 devexpress winform spinedit 右邊上下箭頭去掉

那個上下箭頭不過是默認的一個小按鈕,去掉方法有兩種。一隱藏,二移除。 1、設置隱藏     2、移除      

原创 devexpress panelcontrol 裏面控件自適應寬度

當拉寬panelcontrol時,希望裏面的控件寬度自適應,可給裏面控件設置Anchor屬性。與上左右保持一個不變的相對距離。        如果這個panelcontrol外層是layoutcontrolitem,則首次加載,這個相對距離

原创 dexpress layoutcontrolitem hide

隱藏: layoutControlItem9.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; 展示: layoutControlItem9.Visibilit

原创 TortoiseGit合併、解決衝突、還原那點事。

最近生產線上master分支因爲某個不合法的合併導致新提交的某些文件或代碼被刪除被覆蓋,結果十分慘烈,everybody加班... 先總結一下TortoiseGit解決衝突、合併、切換分支、創建分支、導出歷史版本、還原等常用的日常操作。 日