我是 WinForms 开发的新手,目前我正在维护一个在 .Net 2.0 中开发的应用程序
在应用程序中,我有一个名为 Length 的列的网格,它以单位显示值。我已经使用CellFormatting
事件来格式化单元格值,否则它只是数字。
但是当用户开始编辑我不希望显示单位时,应该只允许用户输入数字。
有没有直接的方法可以做到这一点?要在网格上设置的事件或属性?
您应该处理该EditingControlShowing
事件以更改当前单元格格式。
private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
e.CellStyle.Format = "#";
e.Control.Text = dataGridView1.CurrentCell.Value.ToString();
}
}
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");
}
}
}
您可以使用 CellStyle Builder 设置格式字符串,并将自定义格式设置为 # mm
怎么做 :