12

我有一个DataGridView可以在TextBox列中输入单位的位置。

如何将此列的输入长度限制6字符?

4

4 回答 4

28

使用. MaxInputLength_DataGridViewTextBoxColumn

此属性可通过 Designer 或代码获得:

((DataGridViewTextBoxColumn)dataGridView1.Columns[yourColumn]).MaxInputLength = 6;
于 2012-10-15T20:08:26.420 回答
6

请使用DataGridView的CellValueChanged事件。

在事件的处理程序中,您可以检查DataGridViewCellEventArgs参数的ColumnIndexRowIndex属性,以识别网格的感兴趣字段已被编辑,然后 - 采取适当的行动。

如其他答案所述 - 限制DataGridView字段文本长度的最自然方法是修改相应的网格列属性。可以在Edit Columns表单上更改网格列的属性,该表单通过右键单击菜单项Edit Columns...在表单设计器中为网格控件调用:

在此处输入图像描述

于 2012-10-15T20:02:27.617 回答
0

您可能必须使用单元格编辑事件。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx

于 2012-10-15T20:03:16.580 回答
0

如果您使用数据绑定,则不一定要准备好操作列。对于数据绑定,使用ColumnAdded侦听器可以帮助:

public FormSingleValidation(BindingList<ValidateSingle> validateSingles)
{
    InitializeComponent();

    dataGridViewSingleValidation.ColumnAdded += ColumnAdded;

    this.validateSingles = validateSingles;
    var source = new BindingSource(validateSingles, null);
    dataGridViewSingleValidation.DataSource = source;
}

private void ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    if(e.Column.GetType() == typeof(DataGridViewTextBoxColumn))
    {
        DataGridViewTextBoxColumn column = (DataGridViewTextBoxColumn) e.Column;
        column.MaxInputLength = 6;
    }
}

注意事项

  1. 显然,这适用于所有文本列,没有区别,如果您只想影响特定列,则可以使用列名称添加条件过滤器。
于 2021-10-14T09:10:13.590 回答