【问题标题】:Set Display format for winform DataGridView设置winform DataGridView的显示格式
【发布时间】:2012-07-05 14:51:37
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# winforms datagrid


    【解决方案1】:

    您应该在事件 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");
            }
        }
    }
    

    【讨论】:

    • 我已经这样做了,这就是我如何显示 1 毫米。但是当单元格进入编辑模式时,我只想显示数字。
    • 或尝试使用 DataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 事件
    【解决方案2】:

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

    怎么做:

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

    【讨论】:

      【解决方案3】:

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

          private void dataGridView1_EditingControlShowing(object sender, 
                                     DataGridViewEditingControlShowingEventArgs e)
          {
              if (dataGridView1.CurrentCell.ColumnIndex == 1)
              {
                  e.CellStyle.Format = "#";
                  e.Control.Text = dataGridView1.CurrentCell.Value.ToString();
              }
          } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多