datagridview 限制某列只能输入数字

来源:互联网 发布:电动螺丝刀 知乎 编辑:程序博客网 时间:2024/05/16 07:46
public DataGridViewTextBoxEditingControl CellEdit = null;

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (this.dataGridView1.CurrentCellAddress.X == 4)
    {
        CellEdit = (DataGridViewTextBoxEditingControl)e.Control;
        CellEdit.SelectAll();
        CellEdit.KeyPress += Cells_KeyPress; //绑定事件
    }
}

private void Cells_KeyPress(object sender, KeyPressEventArgs e) //自定义事件
{
    if ((this.dataGridView1.CurrentCellAddress.X == 4) || (this.dataGridView1.CurrentCellAddress.X == 5) || (this.dataGridView1.CurrentCellAddress.X == 6))
    {
        if (!(e.KeyChar >= '0' && e.KeyChar <= '9')) e.Handled = true;
        if (e.KeyChar == '\b') e.Handled = false;
    }
}
 
我写的有一个可以获取那个自动生成的序列号:
private void dgvGoodsexpend_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
DataGridViewTextBoxColumn dgv_Text = new DataGridViewTextBoxColumn();
for (int i = 0; i < dgvGoodsexpend.Rows.Count; i++)
{
int j = i + 1;
this.dgvGoodsexpend.Rows[i].HeaderCell.Value = j.ToString();
}
}

获取值:(我在一个button事件中)
private void button2_Click(object sender, EventArgs e)
{
string txt = "";
for (int i = 0; i < dgvGoodsexpend.Rows.Count; i++)
{
txt += dgvGoodsexpend.Rows[i].HeaderCell.Value.ToString()+" / ";
}
MessageBox.Show(txt);
}
0 0
原创粉丝点击