[VS2012] DataGridViwer 改變編輯模式 EditMode

變換 DataGridView 的欄位成為 ComboBox 後,在操作時發現需要點兩次才能進入編輯模式 (點擊第一次是 OnFocus、第二次才是 進入編輯模式)。被朋友提醒才知道原來 DataGridView 有個 EditMode 屬性可以調整。

DataGridViewEditMode 有五種的選項可以使用

EditOnEnter

當儲存格收到焦點時,編輯即會開始。當按下 TAB 鍵在資料列之間輸入值,或是按下 ENTER 鍵在資料行下面輸入值時,這個模式會相當實用。

EditOnF2

當儲存格具有焦點而按下 F2 時,編輯即會開始。這個模式會將選擇點置於儲存格內容的結尾。

EditOnKeystroke

當儲存格具有焦點而按下任何英數按鍵時,編輯即會開始。

EditOnKeystrokeOrF2 (這個是預設的功能)

當儲存格具有焦點而按下任何英數按鍵或 F2 鍵時,編輯即會開始。

EditProgrammatically

只有當呼叫 BeginEdit 方法時,編輯作業才會開始。

資料參考:https://msdn.microsoft.com/zh-tw/library/system.windows.forms.datagridvieweditmode(v=vs.110).aspx

使用範例:

 

[VS2012] 如何將 Access OLE 物件 欄位內的圖片存取出來?

直接利用 Access 將圖片資料上傳到 OLE 物件 欄位時,因為 Access 會做一些資料記錄 (用以辨別 OLE 物件是什麼?),所以圖片資料前面會含有其它不重要的訊息。在取出該欄位時,必須先找到檔案的開頭在何處,才能正確轉圖片出來。

 

[MoonSharp] 找不到 Lua Script File 的模組? module ‘…’ not found

SayHelloMain.lua 內容

SayHelloModule.lua 內容

» Read more

[MoonSharp] Lua for C#

工作上的專案使用 Lua 已經有一段時間,也累積了不少腳本 (Script)。剛開始撰寫程式的環境是 BCB5,可以直接將 Lua 調用 (因為都是 C/C++ 的程式);隨著 BCB5 將被 C# 淘汰,就只能找看看有沒有合適的解決方案。

很幸運的有人開發 LuaInterface,將它編譯成 DLL 之後,就能與 C# 做好運用,原本寫的程式不需要做太大的變動。但在 2013 年的時候, LuaInterface 的作者已經不再維護此專案,改成立 NLua 專案。為了能配合 Lua 5.2 版本,也跟著變換專案到 NLua。

NLua 是基於 KopiLua 開發而成的 DLL。閱讀了一下 KopiLua,似乎是作者把 Lua 改寫成 C# 版本。在 NLua 推出 1.3.0 時,已經有支援 UTF8 的格式;嘗試過很多寫法,總是無法讓中文字呈現。於是放棄了 NLua 專案。

Lua with C# 有很多專案,如:LuaInterface、NLua、uniLua、uLua、sLua、MoonSharp、DynamicLua … 等等。找了很久之後,打算這次套用 MoonSharp 專案看看。

» Read more

[VS2012] 載入被異動檔名的 DLL

最近需要開發一隻程式,將 XML 轉成 PDF。網路上已經有許多開發完成的套件可以直接呼叫,像是 iTextSharp。但是公司內有使用到這套件的人也有,版本卻不一樣,這樣有些麻煩,萬一對方更新,沒有知。我們的程式很可能會突然出現 DLL 載入失敗。

想到另一個方式就是直接在檔名上加上版本,好作識別。但是檔名被更改後,在 C# 裡面,居然會無法直接載入,會出現 “FileNotFoundException” 的錯誤訊息。害得我再找到另一個解決方式!

VS_HowToLoadRenamedDll_01

» Read more

[VS2012] 在 C# 內預覽 Crystal Report

Crystal Report 套件內附有 CrystalReportViewer 類別,可以透過這個類別將產生的報表結果顯示在畫面,提供使用者在列前的預覽。另外,在 Viewer 裡面也提供有轉檔匯出功能 (轉成 PDF、Excel、Word、XML、Rich Text Format、CSV、Crypstal Reports 等格式)。

因此,將它寫成一個通用類別,例:FomCrystalReportPreview.cs,提供給各個專案 (Project) 使用,那就不用每次都重新拖拉介面,程式的寫法也可以變得更精簡些。在這個表單 (Form) 裡面需要提供參數,讓外部傳入真正的要顯示的 Crystal Report:

產生 Crystal Report 的方式:

 

 

1 2 3 4