zoukankan      html  css  js  c++  java
  • C# DataGridView的單元格中只能輸入數字

    控件類型:DataGridView

    控件名稱:dgvGift_Condition

    裏面用到的:IsNumeric、NotePastText、RestoreText 等請參見 前一日志“TextBox中只能輸入數字”。

    下面例子中 dgvGift_Condition中 第2列和第4列 只能輸入數字

            private DataGridViewTextBoxEditingControl EditingControl = new DataGridViewTextBoxEditingControl();

            private void dgvGift_Condition_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                if (this.dgvGift_Condition.CurrentCell.ColumnIndex == 1 || this.dgvGift_Condition.CurrentCell.ColumnIndex == 3)
                {
                    EditingControl = (DataGridViewTextBoxEditingControl)(e.Control);
                    EditingControl.KeyPress += new KeyPressEventHandler(EditingControl_KeyPress);
                    EditingControl.TextChanged += new EventHandler(EditingControl_TextChanged);
                }
            }

            void EditingControl_TextChanged(object sender, EventArgs e)
            {
                if (this.IsNumeric(this.EditingControl.Text, true, false))
                {
                    this.NotePastText(this.EditingControl, ref PastText);
                }
                else
                {
                    this.RestoreText(this.EditingControl, PastText);
                }
            }

            void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
            {
                this.CheckKeyIn(e, false);
            }

     

            private void dgvGift_Condition_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
            {
                if (e.ColumnIndex == 1 || e.ColumnIndex == 3)
                {
                    TextBox tb = new TextBox();
                    if (this.dgvGift_Condition.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == null)
                    {
                        tb.Text = "";
                    }
                    else
                    {
                        tb.Text = this.dgvGift_Condition.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                    }
                    this.NotePastText(tb, ref PastText);
                }
            }

     

            private void dgvGift_Condition_CellEndEdit(object sender, DataGridViewCellEventArgs e)
            {
                EditingControl.KeyPress -= EditingControl_KeyPress;
                EditingControl.TextChanged -= EditingControl_TextChanged;
            }

  • 相关阅读:
    软件加载前显示加载中画面
    datatable用法
    arcsde安装
    dev gridcontrol (一)绑定值
    dev常用
    lookupedit用法(combox功能)
    关于NetBox2.8端口问题
    asp.net中,登录互斥的相关代码(不包含中途退出的处理)
    我老婆其人其事(一)
    判断文件是否为UTF8编码(以前收集的)
  • 原文地址:https://www.cnblogs.com/Veky/p/3256023.html
Copyright © 2011-2022 走看看