2009-05-16 10 views
0

Je travaille sur un datagridview en C# dans l'application Windows. Je veux ajouter des contrôles de zone de texte dans DataGridView. Donc, quand nous l'exécutons, textbox devrait être affiché dans gridview et nous pouvons y mettre de la valeur et Ma grille a 3 colonnes et je veux ajouter une nouvelle ligne dans la grille lorsque j'appuie sur tab sur la 3ème colonne de gridview.Contrôle de zone de texte dans DataGridView

Comment faire?

+0

Le titre de cette question peut être améliorée. Envisager de l'appeler quelque chose comme: "Les contrôles personnalisés dans DataGridView" au lieu de "Programmation Windows en C# .NET" – rein

+0

Cela devrait vraiment être deux questions, "Comment insérer un contrôle dans un gridview?" et "Comment ajouter une ligne dans une vue de grille quand un utilisateur tabule la troisième colonne?". – jfar

+1

Si vous avez un peu expliqué ce que votre recherche a révélé jusqu'ici, les gens ici seraient mieux placés pour vous aider. Mais je suis sûr que vous ne pouvez pas élaborer sur ce point parce que vous n'avez pas pris la peine de faire des recherches. – Cerebrus

Répondre

2

Il est difficile de fournir une réponse précise puisque votre question manque en détail et assez général, mais pour obtenir textboxes dans votre DataGridView, vous allez vouloir ajouter quelques exemples de DataGridViewTextBoxColumn à la collection de ColumnsDataGridView. Cela entraînera leur remplissage avec des zones de texte dans chaque ligne.

Pour détecter lorsque l'utilisateur appuie sur l'onglet de la 3ème colonne, vous pouvez ajouter une quatrième colonne de 1 à 2 pixels et détecter qu'il a reçu un focus (presque définitivement à partir d'une touche de tabulation) en utilisant l'événement OnCellEnter.

Bonne chance!

+0

La quatrième colonne cachée est une belle astuce. –

0

Ainsi, pour les « affichage textboxes par partie par défaut de votre question, voici le maigre.

sur GridView-> Colonnes Modifier, ajouter les colonnes que vous souhaitez utiliser explicitement Cliquez ensuite sur le lien » Convertir cette Dans ce cas, allez dans GridView-> Editer les modèles Pour votre colonne favorite, copiez le ItemEditTemplate dans le ItemTemplate (ItemTemplate est la valeur par défaut. le contrôle d'édition correctement lié.) Maintenant, tous vos champs de données seront par défaut à «modifiable».

Je suppose que vous avez un bouton d'envoi Vous devez indiquer à GridView de mettre à jour lignes e sur soumettre, comme suit:.

For Each r As GridViewRow In GridView1.Rows 
     Dim mon = System.Int32.Parse(CType(r.FindControl("TextBox1"), TextBox).Text) 
     If mon <> 0 Then GridView1.UpdateRow(r.RowIndex, False) 
    Next 

De toute évidence, vous voulez une logique différente à l'intérieur là, mais la logique de boucle/FindControl/updateRow de base doit être.

Microsoft a une procédure pas à pas sur ce ici: Performing Bulk Updates to Rows Bound to a GridView

Questions connexes