如何在datagridview单元格中允许大写字母,数字?

时间:2012-03-20 12:49:18

标签: c# winforms datagridview visual-studio-2005

我在我的Windows程序中使用了datagridview。在第1列中,用户将输入大写字母和数字。在其他一些列(第3列和第4列)中,用户只能输入整数(不允许小数)。我正在编写以下代码,将输入的值转换为第1列的大写字母:在CellEndEdit事件中

    string strUpper = "";

                switch (e.ColumnIndex)
                {
                    case 1:
                        strUpper = dgView.CurrentCell.Value.ToString() ;
                        dgView.CurrentCell.Value = strUpper.ToUpper();
                        break;
                }

当焦点移动到下一个单元格时,输入的值将转换为大写。但我想知道还有其他事件/代码可以做同样的事情吗?以及如何不允许用户在单元格3和4中输入小数。请帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用CellValidating这样的DataGridView事件:

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
        // insert additional checks to fit your constraints
        if (dataGridView1.CurrentCell.IsInEditMode) {
            int value;
            if (!int.TryParse(e.FormattedValue.ToString(), out value)) {
                MessageBox.Show("Must be integer!");
                e.Cancel = true;
            }
        }
    }