2

我是 WinForms 开发的新手,目前我正在维护一个在 .Net 2.0 中开发的应用程序

在应用程序中,我有一个名为 Length 的列的网格,它以单位显示值。我已经使用CellFormatting事件来格式化单元格值,否则它只是数字。

但是当用户开始编辑我不希望显示单位时,应该只允许用户输入数字。

有没有直接的方法可以做到这一点?要在网格上设置的事件或属性?

在此处输入图像描述

4

3 回答 3

1

您应该处理该EditingControlShowing事件以更改当前单元格格式。

    private void dataGridView1_EditingControlShowing(object sender, 
                               DataGridViewEditingControlShowingEventArgs e)
    {
        if (dataGridView1.CurrentCell.ColumnIndex == 1)
        {
            e.CellStyle.Format = "#";
            e.Control.Text = dataGridView1.CurrentCell.Value.ToString();
        }
    } 
于 2012-07-05T08:42:22.993 回答
1

You should set the unit in the event DataGridView_CellFormatting

void DataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 1)
    {
        int value;
        if(e.Value != null && int.TryParse(e.Value.ToString(), out value))
        {
            e.Value = value.ToString("#mm");
        }
    }
}
于 2012-07-05T08:19:58.263 回答
1

您可以使用 CellStyle Builder 设置格式字符串,并将自定义格式设置为 # mm

怎么做 :

  1. 右键单击网格,然后单击属性
  2. 在属性窗口中,单击将弹出“编辑列”对话框的按钮
  3. 选择要格式化的单元格
  4. 在编辑列对话框的右侧,选择 DefaultCellStyle 属性
  5. 单击 DefaultCellStyle 属性,然后将打开 CellStyleBuilder 对话框
  6. 在这里你有格式属性,这会给你格式字符串对话框
  7. 将自定义属性设置为#mm,您将在底部看到预览
  8. 单击确定...直到您回到网格...
于 2012-07-05T08:32:20.550 回答