2017-02-15 45 views
1

私はC#を初めて使用しており、現在3列のデータグリッドビューで作業していますが、設定ファイルを読み込んで動的に行を作成しています。私の必要性は、各列の入力数を制限することです。最大入力長は、それぞれに変わります。行1、列3は最大長さが6であり、行2、列3は最大長さが12であると言います。 DataGridView1.Rows [i] .Cells [2]をDataGridViewTextBoxColumnにキャストしようとしましたが、キャスト例外が発生しました。設計者が入力を最大限長くすることはできません。DataGridViewの最大入力長を制限するC#

助けてください

おかげ Nibin

答えて

1

するか、ページのロードDataGridの

探しhere

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; 

または

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e) 
{    
    ((TextBox)e.Row.FindControl("ControlName")).MaxLength = 6; 
} 
+0

NullReferenceExceptionsと慎重にそれがロードされている場合、dinamicallyありTextBoxが存在することを保証しない:-) – bradbury9

0
dataGridView1.Rows[i].Cells[2].MaxInputLength = x; 

詳細

RowDataBoundで
0

あなたは以下のようなテキストボックスの列にMaxInputLengthにアクセスすることができます。

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