轉帖|使用教程|編輯:鮑佳佳|2020-08-14 09:50:13.483|閱讀 272 次
概述:如果你為表格中的列指定了數據類型,表格會驗證這個類型的數據是否能夠在這一列保存。這有助于防止錯誤發生,本文詳細描述了如何用代碼實現檢查在數據輸入后編輯框中的數據是否合法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
ComponentOne Studio for WinForms包含超過65個.NET的控件,其中,還有一些是 WinForms所獨有的。它擁有敏捷的設計器、數以百計的樣例和一個活躍的社區論壇。它可以幫你完成任何事,不管是要設計一個擁有百萬行的Grid還是一張具有無數點的圖表。
添加數據驗證
如果你為表格中的列指定了數據類型,表格會驗證這個類型的數據是否能夠在這一列保存。這有助于防止錯誤發生,但是你會經常需要更加嚴格的驗證,以確保輸入的數據是正確的。 ValidateEdit 事件就可以很好地幫你解決這個問題。例如,想象一下,反托拉斯法規組織我們在北方地區銷售我們的小程序。為了防止數據輸入錯誤而帶來昂貴的訴訟,我們希望防止用戶在這個下拉列表中輸入這個值。
以下事件用來檢查在數據輸入后編輯框中的數據是否合法, 添加下面的代碼到窗體中:
Visual Basic
Private Sub C1FlexGrid1_ValidateEdit(ByVal sender As Object, ByVal e As ValidateEditEventArgs) Handles C1FlexGrid1.ValidateEdit Dim rgn As String = String.Empty Dim prd As String = String.Empty ' 收集我們需要的數據 Select Case e.Col prd = C1FlexGrid1.Editor.Text rgn = C1FlexGrid1(e.Row, "Region") Case 1 prd = C1FlexGrid1(e.Row, "Product") rgn = C1FlexGrid1.Editor.Text End Select ' 我們可以在北部區域賣小程序 If prd = "Applets" And rgn = "North" Then MsgBox("Warning: Regulation #12333AS/SDA-23 forbids " & _ "the sale of " & prd & " in region " & rgn & ". " & _ "Please verify input.") e.Cancel = True End If End Sub
private void c1FlexGrid1_ValidateEdit( object sender, ValidateEditEventArgs e) { string rgn = string.Empty; string prd = string.Empty; //收集我們需要的數據. switch (e.Col) { case 0: prd = c1FlexGrid1.Editor.Text; rgn = (string)c1FlexGrid1[e.Row, "Region"]; break; case 1: prd = (string)c1FlexGrid1[e.Row, "Product"]; rgn = c1FlexGrid1.Editor.Text; break; } //我們可以在北部區域賣小程序 if ( prd == "Applets" && rgn == "North" ) { MessageBox.Show("Warning: Regulation #12333AS/SDA-23 forbids " + "the sale of " + prd + " in region " + rgn + ". " + "Please verify input."); e.Cancel = true; } }
運行程序,并遵守以下規定:
這個模塊開始是收集需要驗證的輸入。請注意,被檢查的值要恢復的話請使用 Editor.Text 屬性。 這是必要的,因為這次編輯并沒有應用到控件中去。如果檢查失敗了,這個模塊將會顯示一個警告然后將 Cancel 參數設置為 True,這樣可以取消編輯并將單元格重新置為編輯模式,使用戶可以再次嘗試。按 F5 再次運行該項目,然后再嘗試輸入一些錯誤的值。你會看到該控件將會拒絕它們。
本次分享的內容就是這些,在接下來的文章中我們將講解如何在編輯中添加剪切板支持。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:葡萄城