C#,限制DatagridView DataGridCell中的最大输入长度

C#,限制DatagridView DataGridCell中的最大输入长度,c#,datagridview,C#,Datagridview,我是C#新手,目前正在处理一个包含3列的datagrid视图,我正在通过读取配置文件动态创建行。我需要限制每列中输入的数量。最大输入长度将因每个更改而更改。假设第1行、第3列的最大长度为6,第2行、第3列的最大长度为12。我试图将此dataGridView1.Rows[I].Cells[2]强制转换为DataGridViewTextBoxColumn,但出现强制转换异常。我无法通过设计器设置最大输入长度,因为要求是动态设置 请帮忙 谢谢 尼宾 在行数据绑定或页面加载中查找更多详细信息 数据网格

我是C#新手,目前正在处理一个包含3列的datagrid视图,我正在通过读取配置文件动态创建行。我需要限制每列中输入的数量。最大输入长度将因每个更改而更改。假设第1行、第3列的最大长度为6,第2行、第3列的最大长度为12。我试图将此dataGridView1.Rows[I].Cells[2]强制转换为DataGridViewTextBoxColumn,但出现强制转换异常。我无法通过设计器设置最大输入长度,因为要求是动态设置

请帮忙

谢谢 尼宾


在行数据绑定或页面加载中查找更多详细信息

数据网格

protected void dgv1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
    ((TextBox)e.Item.FindControl("ControlName")).MaxLength = 6;
}
用于GridView

((TextBox)gridview1.Rows[0].Cells[2].FindControl("ControlName")).MaxLength = 6;


您可以访问以下文本框列的MaxInputLength:

private void SetTextBoxColumnLength(int index, int length) {
  if ( (dataGridView1.Columns.Count > index) && (length > 0) ) {
    DataGridViewTextBoxColumn targetColumn = (DataGridViewTextBoxColumn)dataGridView1.Columns[index];
    targetColumn.MaxInputLength = length;
  }
}

注意NullReferenceExceptions,如果以友好方式加载,则无法保证文本框将存在:-)
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{            
    ((TextBox)e.Row.FindControl("ControlName")).MaxLength = 6;
}
private void SetTextBoxColumnLength(int index, int length) {
  if ( (dataGridView1.Columns.Count > index) && (length > 0) ) {
    DataGridViewTextBoxColumn targetColumn = (DataGridViewTextBoxColumn)dataGridView1.Columns[index];
    targetColumn.MaxInputLength = length;
  }
}