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;
            }

  • 相关阅读:
    Python学习笔记:pandas.read_csv分块读取大文件(chunksize、iterator=True)
    Python学习笔记:os.stat().st_size、os.path.getsize()获取文件大小
    7-1 打印沙漏
    7-1 币值转换
    7-1 抓老鼠啊~亏了还是赚了?
    第四周编程总结哦也
    2018秋寒假作业6—PTA编程总结3
    PTA编程总结3
    PTA编程总结1
    秋季学期学习总结
  • 原文地址:https://www.cnblogs.com/Veky/p/3256023.html
Copyright © 2011-2022 走看看