2017-02-15 217 views
1

我是C#的新手,目前正在研究一個有3列的datagrid視圖,我通過讀取配置文件動態創建行。我的需求是限制每列中輸入的數量。最大輸入長度將會改變。假設第1行第3列的最大長度爲6,第2行第3列的最大長度爲12。我試圖將此dataGridView1.Rows [i] .Cells [2]轉換爲DataGridViewTextBoxColumn,但獲取轉換異常。我無法通過設計器設置最大輸入長度,因爲要求是動態的。C#,限制DatagridView中的最大輸入長度DataGridCell

請幫

感謝 Nibin

回答

1

或頁面加載

對於DataGrid的

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

慎用NullReferenceException異常,如果加載dinamically有不保證TextBox將存在:-) – bradbury9

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

here更多細節

中的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; 
    } 
}