1. 程式人生 > >C# datagridview限制單元格輸入數字

C# datagridview限制單元格輸入數字

轉自:http://blog.csdn.NET/i3039/article/details/5131522

方案一:進入編輯後EditingControlShowing後遮蔽其他按鍵

方案二:使用textbox覆蓋在編輯單元格前面

方案三:對datagridview的單元格型別進行區分

為避免在DataGridView的單元格中輸入錯誤的資料型別導致儲存錯誤,可以用下面程式碼解決:

1、先設定DataGridView只能輸入數字的列的外觀屬性:(見圖1

DefaultCellStyle為:DataGridViewCellStyle { NullValue=0, Format=N2}

其中,NullValue=0

表示此單元格為空時的預設值為0Format=N2則代表格式化

1

2、然後編寫DataGridViewEditingControlShowing事件:

TextBox control;    //定義輸入框控制元件物件

private  void  dataGridView1_EditingControlShowing(object sender,

  DataGridViewEditingControlShowingEventArgs e)

{

//只對TextBox型別的單元格進行驗證

    if (e.Control.GetType().BaseType.Name == "TextBox") 

    {

        control = new TextBox();

        control = (TextBox)e.Control;

        if (control.Text == "0")    //需要限制輸入數字的單元格

        {

            control.KeyPress += new KeyPressEventHandler(control_KeyPress);

        }

        else

        {

            //非數字型別單元格

            control.Leave += new EventHandler(control_Leave);

        }

    }

}

void control_KeyPress(object sender, KeyPressEventArgs e)

{

    //限制只能輸入-9的數字,退格鍵,小數點和回車

    if (((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57) || e.KeyChar == 13 || e.KeyChar == 8 || e.KeyChar == 46)

    {

        e.Handled = false;

    }

    else

    {

        e.Handled = true;

        MessageBox.Show("只能輸入數字!");

    }

}

void control_Leave(object sender, EventArgs e)

{

    //如果需要限制字串輸入長度

    if (control.Text.Length != 11)

    {

        MessageBox.Show("只能為位!");

        control.Focus();

    }

}


相關推薦

C# datagridview限制單元輸入數字

轉自:http://blog.csdn.NET/i3039/article/details/5131522 方案一:進入編輯後EditingControlShowing後遮蔽其他按鍵 方案二:使用textbox覆蓋在編輯單元格前面 方案三:對datagridview的單元

C# DataGridView單元輸入限制,並提示使用者 數字,小數點

//自定義事件,檢測單價的鍵盤的輸入         private void EditingControlPrice_KeyPress(object sender, KeyPressEventArgs e)         {             //e.KeyCha

C# DataGridView單元Cell改變事件

DataGridView控制元件中的各種事件都無法直接響應Cell中內容的變化,包括KeyPress等事件採用下面方法 private void dataGridViewBarcode_EditingControlShowing(object sender, DataGridViewEditingCo

Excel如何限制單元只能輸入數字

日常工作中,excel是最常用來處理資料的工具,有時候在某一列或行中,只能輸入數字,如何進行資料編輯上的限制呢? 方法/步驟 開啟要編輯的excel工作表,圖中表格作為例子,我們要在單價列中輸入價格,這一列只能填入數字。 選定需要輸入單價的所有單元格。在工作欄中,選

表格提交時檢視單元輸入框是不是為空或數字

本來可以用jquery校驗框架,但是表格裡面不好校驗,所以自己寫程式碼手動校驗 //儲存時check function check() {     var checkResult = true;     jQuery("#sample_editable_1 tr").e

C# WPF下限制TextBox只輸入數字、小數點、刪除等鍵

C#中限制TextBox只輸入數字和小數點的方法不止一種,有正則表達、ASCII碼,還有通過Key和ModifierKeys的。這裡講講通過Key和ModifierKeys來進行輸入限制。Key是C#下

限制input只能輸入數字/數字和小數點

red onkeyup this span replace ice fff round logs 1.限制input只能輸入數字 <input id="Number" name="Number" type="text" class="form-control req

限制前端只能輸入數字

shiy使用onkeyup和onafterpaste事件 在input文字加上這段話 onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')

NPOI2.2.0.0例項詳解(八)—設定EXCEL單元數字格式】

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using NPOI.HSSF.UserM

SAP TableControl 控制單個單元輸入

*&SPWIZARD: OUTPUT MODULE FOR TC 'TBL'. DO NOT CHANGE THIS LINE!*&SPWIZARD: GET LINES OF TABLECONTROLMODULE TBL_GET_LINES OUTPUT.   G_TBL_LINES = S

限制input只能輸入數字限制只能輸入兩位小數

chrome中的input不要加type=”number”,有問題,輸入負號擷取到第一個字串是空,就預設text就行 若允許負數加上allowMinus類,正數只加limitNumber 以下可以封裝成函式,加到DOM上的onkeyup=foo(this)

(很難啊)如何實時獲取DBGrid 中當前單元輸入的內容? [問題點數:100分,結帖人yifawu100]

很難 orm 編輯 ado tst RoCE insert sender byname 如何獲取DBGrid 中當前單元格輸入的內容?還沒輸入完成,我想實時獲取 Cell中的內容,以便作其他處理,用什麽事件呢? 所以Field的Onchange事件是沒用的。

Android 限制EditText只能輸入數字限制輸入型別、限制輸入長度的小技巧

準確的說讓Edittext只能輸入數字有方法兩種,都是通過xml屬性設定 方法一: <EditText            android:id="@+id/u_account"            android:layout_width="0dp"

限制EditText只輸入數字和字母

可以通過設定EditText屬性digits android:digits="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVB

DataGridView單元Cell改變事件

cells .get control 控件 type win end bject pri DataGridView控件中的各種事件都無法直接響應Cell中內容的變化,包括KeyPress等事件,可以采用下面方法 無法響應Cell中的回車鍵 private void data

C# DataGridView單元畫斜線

功能要求:不符合條件的單元格使用斜線形式表現出來。 1、定義兩個變數,一個是儲存單元格位置的陣列,一個是Graphics 變數 Graphics gdi; List<DataGridViewCell> pathList = new List<DataGridViewCell&

C# 完美實現DataGridView批量複製多行/單元資料並貼上功能

C#系統預設情況下不支援批量貼上多行或多個單元格資料,但是有時想直接複製dataGridView的一部分資料,然後一起貼上到DatagridView的指定位置。 關鍵步驟 0.建立一個C#窗體應用程式this,呼叫一個DataGridView控制元件this.dataGridView1

C# DataGridView單元合併與文字居中

#region <<單元格合併配置>> public struct MergeCellsParam { public int iStartCellColumn; publi

C# DataGridView單元中動態新增多個控制元件

簡介:          在DataGridView的單元格中動態新增多個控制元件。例如在DataGridViewTextBox單元格中,新增CheckBox和Button控制元件。主題思路就是一個動態控制元件的大小,位置,顯示,事件設定,和平常

C# 在datagridview中的單元中加入button按鈕

private void dgv_XiaoShouChuKuMingXi_CellClick(object sender, DataGridViewCellEventArgs e) { this.dgv_XiaoShouChuKuMi