正の整数のみを通過するように検証するにはどうすればよいですか? 整数以外の場合にエラーを引き起こす可能性のある列がありますが、ユーザーはその列のセルに負の整数を入力できます。
3557 次
3 に答える
0
Nvm 見つかりました 後でリンクを更新します 列のインデックス = は、現在のセルがその列にあるかどうかを示します。次のコードを使用して検証します。リンクはこちら
If grdDataGrid.CurrentCell.ColumnIndex = 4 Then
If Not Integer.TryParse(e.FormattedValue.ToString(), newInteger) _
OrElse newInteger < 0 Then
e.Cancel = True
Me.grdDataGrid.Rows(e.RowIndex).ErrorText = "the value must be a non-negative integer"
MsgBox("You must enter a positive number")
End If
End If
于 2013-06-07T08:49:14.637 に答える
0
Datagridview EditingControlShowing イベントで試してください...
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
Try
If UCase(sCellName) = "QUANTITY"
AddHandler e.Control.KeyPress, AddressOf TextNumberKeypress
End If
Catch ex As Exception
'...
End Try
End Sub
Sub TextNumberKeypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Dim k As Byte = Asc(e.KeyChar)
If Not IsNumSimple(k) Then
e.Handled = True
If Not (k = 8 Or k = 13 Or k = 1 Or k = 3 Or k = 22) Then e.Handled = True
End If
End Sub
于 2013-06-07T08:50:00.283 に答える
0
JavaScriptコードを使用するのはどうですか?このjsイベントを追加
onkeypress=""return allowOnlyNumber(event);
必要なのは
function allowOnlyNumber(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
または、AjaxControlToolkit の FilteredTextBoxExtender を次のように使用できます。
<asp:TextBox ID="txtbox1" runat="server"></asp:TextBox>
<cc1:FilteredTextBoxExtender id="ftbe" runat="server" targetcontrolid="txtbox1"
filtertype="Numbers" validchars="0123456987" />
于 2013-06-07T07:41:14.217 に答える