2011-04-28 26 views
3

我正在處理涉及數據輸入的項目。在線休息事件

表看起來是這樣的:dateTimeenumtextenumval1val2textenum;

val1val2之外的所有數值都只輸入一次,並添加到每個val1 val2對的表中。 Val1val2對於每一行條目都是不同的,它們都是條形碼。

我期望儘可能提高效率,所以我想知道是否有方法在進入Val1/2時進行DGV更新(其餘vals當前存儲爲變量在object[])。我使用的是標準的條形碼掃描器,所以我儘管可以讓它在掃描條形碼後輸入掃描儀輸入的「linebreak」上的值,所以我基本上正在尋找「scanner_LineBreak」事件或其他...

所以我已經超越了這個問題......現在....我需要將所有數據寫入DGV中的文本/ excel/xml/whichevertheheck文件...壞結構我知道......可能只是重來。任何方式,我已經創建了一個空的數據集,並清空數據表和一個空的數據行(使用object[]填充填滿表的行填充集),我現在試圖輸入所有的數據到空dataTable我可以將它添加到數據集,以便我可以將數據寫入XML。不用說這不起作用。我嘗試使用XmlSerializer,但它導入到Access和/或IE時出錯。因此,請回到方框1 ...有沒有辦法從DGV填充DS,或者是否有方法僅使用DGV數據編寫任何文檔。 注:DGV = DataGridView

UPDATE

思考了一會兒,我意識到,我可以做一個計數器增量爲每個字符與TextChanged事件進入並從那裏,我一定會想要的東西后, ...去圖...

int counter = 0; 
private void textbox1_Textchanged(obj sender etc) 
{ 
    counter++; 

    if (counter % 10 == 0) 
    { 
     //shift focus to other textbox then do same to "save" values 
    } 
} 

回答

1

根據我的經驗,大多數條形碼掃描儀被視爲鍵盤輸入。數字後面會出現一個控制字符(通常是CRLF或選項卡,但您需要檢查掃描儀以查看它使用的是什麼字符)。然後,您可以使用KeyDown或TextChanged事件查看輸入,並且如果它是控制字符,則執行更新邏輯。

+0

是的,嘗試了textchanged事件,但它停止輸入的第一個字符。我目前正在通過輸入所有數據來解決這個問題,只有在全部收集後才添加到表中。這種方式應該更高效。非常感謝答案,但我會看看KeyDown – Dani 2011-04-28 09:21:43

+0

項目已完成...精美的作品。我如何關閉這個問題/線程? – Dani 2011-04-29 12:07:36

+0

不錯的工作!只需在答案上點擊複選標記標記回答的問題即可。 – ljkyser 2011-04-29 13:50:53