0

私は datagridview コントロールを使用しています。dataGridView を検証して、 datagridview のテキスト ボックス セルのような値を money 形式で許可したいと考えています123.00,123.50。それは数値と 1 つを取る必要があります。価値。

4

3 に答える 3

0

私が過去に使用した方法 (およびその方法を知っている唯一の方法) は、DataGridViewTextBoxColumn および DataGridViewTextBoxCell から継承するクラスを作成し、グリッドを作成するときに DataGridViewTextBoxColumn の代わりに派生クラスを使用することです。

このリンクには、VB でそれを行う方法の例があります。私のC#コードは以前勤めていた会社が開発したものなので投稿できませんが、VBコードは基本的に同じです。

于 2012-12-10T07:47:10.093 に答える
0

ユーザー入力をリアルタイムで検証したいように見えるので、それを行うための最善かつ効果的な方法は、MaskedtextBox. この記事では、その方法を示します。そして、そこでフォーマットを指定できます。マスク要素については、このMSDN の投稿を参照してください。

于 2012-12-10T10:37:44.533 に答える
0

あなたが必要

1. There should be a decimal.
2. Only 2 digits after decimal
3. And there should be 2 such numbers separated by a comma(,)

コードは次のとおりです:- aspx ファイル

<asp:TextBox ID="txtMoney" runat="server" Width="100px" />
<asp:RequiredFieldValidator ID="rfvMoney" ValidationGroup="Insert" runat="server"
ControlToValidate="txtEmail" ErrorMessage="Please Enter value for money" ToolTip="Please Enter valid value for money"
SetFocusOnError="true" ForeColor="Red">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="reMoney" runat="server" ControlToValidate="txtMoney"
ErrorMessage="Please Enter a Valid value for Money" ToolTip="Please Enter a Valid Value for money"
SetFocusOnError="true" ForeColor="Red" ValidationExpression="\d+([.])\d\d([,])\d+([.])\d\d"
                            ValidationGroup="Insert">*</asp:RegularExpressionValidator>

コード ビハインド、つまり aspx.cs ファイル

if (e.CommandName.Equals("Insert"))
        {
            eInfo.money = ((TextBox)gvEG.FindControl("txtMoney")).Text;
            new mainSQL().insertEmployeeInfo(eInfo); //My cs file for insert values to table
            FillEmployeeGrid();
        }

私は自分のプロジェクトでこのコードを試しましたが、正しく動作しています。

ここでのメイン コードは正規表現です。

ValidationExpression="\d+([.])\d\d([,])\d+([.])\d\d"

どこ

\d- denotes 1 digit
\d+ - one or many digits
\d\d - denotes only 2 digits
于 2012-12-10T08:56:13.733 に答える