DataGridView 列大写、列只能输入数字

列大写:

说明:调用EditingControlShowing事件

 private void dgvGoods_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
            #region 条码列大写
            if (dgvGoods.CurrentCell.ColumnIndex == 4) {//列索引
                DataGridView dgv = (DataGridView)sender;
                if (e.Control is DataGridViewTextBoxEditingControl) {
                    DataGridViewTextBoxEditingControl editiongControl = (DataGridViewTextBoxEditingControl)e.Control;
                    if (dgv.CurrentCell.OwningColumn.Name == "列名") {
                        editiongControl.CharacterCasing = CharacterCasing.Upper;
                    } else {
                        editiongControl.CharacterCasing = CharacterCasing.Normal;
                    }
                }
            }
            #endregion
        }


列只能输入数字:

  private void dgvGoods_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
           // isDigit = false;
            if (dgvGoods.CurrentCell.ColumnIndex == 9) {//列索引
               // isDigit = true;
                e.Control.KeyPress += new KeyPressEventHandler(TextBox_KeyPress);               
            }
        }
        //只能输入数字、删除、减号   减号=45
        private void TextBox_KeyPress(object sender, KeyPressEventArgs e) {
            if (isDigit == true) {
                if (!char.IsDigit(e.KeyChar) && e.KeyChar!=45) {
                    if (e.KeyChar == 8) {
                        e.Handled = false;
                    } else {
                        e.Handled = true;
                    }
                }
            }
        }

备注:列只能为数字,要注意一点(即注释部分 bool isDigit=falase;如果列索引不等于9,不会执行EditingControlShowing事件),如果不加上,其他列也只能输入数字了。

DataGridView 列大写、列只能输入数字

上一篇:jquery通过ajax获取数据,控制显示的数据条数


下一篇:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)问题——使用openshift远程连接的时候出现的问题解决办法