1

C#Windowsアプリケーションにグリッドビューがあります...編集が可能で、キーを押すだけで数字を許可する特別なセル( "Price"という名前)が必要です...texboxesで数字のみを許可するには以下のコードを使用します。 ..グリッドビューのどのイベントでこのコードを書く必要がありますか?

     private void txtJustNumber_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (!char.IsDigit((char)(e.KeyChar)) &&
            e.KeyChar != ((char)(Keys.Enter)) &&
            (e.KeyChar != (char)(Keys.Delete) || e.KeyChar == Char.Parse(".")) &&
            e.KeyChar != (char)(Keys.Back))
        {
            e.Handled = true;
        }
    }
4

3 に答える 3

2
You can use CellValidating event of DataGridView.


private void dataGridView1_CellValidating(object sender,
        DataGridViewCellValidatingEventArgs e)
    {
        // Validate the Price entry.
        if (dataGridView1.Columns[e.ColumnIndex].Name == "Price")
        {
        }
    }
于 2012-10-31T07:16:22.250 に答える
2

thx guys ...私は以下のコードを使用し、問題は解決しました...

    public Form1()
    {
        InitializeComponent();
        MyDataGridViewInitializationMethod();
    }

    private void MyDataGridViewInitializationMethod()
    {
        gvFactorItems.EditingControlShowing +=
            new DataGridViewEditingControlShowingEventHandler(gvFactorItems_EditingControlShowing);
    }

    private void gvFactorItems_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress); ;
    }

    private void Control_KeyPress(object sender, KeyPressEventArgs e)
    {

        if (!char.IsDigit((char)(e.KeyChar)) &&
            e.KeyChar != ((char)(Keys.Enter)) &&
            (e.KeyChar != (char)(Keys.Delete) || e.KeyChar == Char.Parse(".")) &&
            e.KeyChar != (char)(Keys.Back))
        {
            e.Handled = true;
        }
    }
于 2012-11-01T17:33:03.487 に答える
0

私はあなたがこれを見てみるべきだと思います、それは助けになります:-

DataGridViewキーダウンイベントがC#で機能しない

于 2012-10-31T13:06:32.027 に答える