2015-11-20 7 views
0

Water mark for Data Grid Viewmarque d'eau pour les données Grille dans Windows en utilisant le formulaire vb.net

Je voudrais ajouter une image comme une marque d'eau dans la grille de données View, comme indiqué dans l'image ci-joint.

Il n'existe pas de propriété Data Grid View pour l'image d'arrière-plan pour définir l'image, puis définir son opacité. J'ai cherché un tiers pour donner la capacité de marquer l'eau que j'ai trouvé que telerik fournissait mais ce n'est pas gratuit.

J'ai besoin d'un outil tiers gratuit pour la grille d'affichage de Data Grid View ou d'un moyen d'ajouter un filigrane sans utiliser aucun outil.

merci à l'avance

+0

Voulez-vous montrer l'image que lorsque le sont pas de rangées? – TaW

+0

Je voulais montrer l'image dans les deux cas alors qu'il y a une rangée ou pas mais j'ai résolu mon problème J'ajouterai une réponse merci pour votre soutien –

Répondre

0

Essayez ce blog - http://blogs.msdn.com/b/winformsue/archive/2008/01/02/datagridview-watermark-cell.aspx

Si vous voulez juste le filigrane dans une cellule vide comme le filigrane dans le contrôle DataGridView, vous pouvez peindre le contenu lorsque vous dessinez la cellule, l'article énuméré ci-dessus vient de dire comment personnaliser une colonne et une cellule de filigrane pour votre DataGridView.

http://www.vb-tips.com/TextAndImageColumn.aspx

+0

J'ai déjà vécu cela mais ce n'était pas bénéfique pour moi. –

0

Si vous voulez superposer les cellules avec une image la lisibilité souffrira grandement.

Mais vous pouvez ajouter un Image dans un imbriqué Panel et soit masquer et afficher quand la première ligne est ajoutée ou le dernier supprimé.

Ou vous pouvez toujours le montrer, mais mouvement sous la dernière rangée ..

Le code est simple; le Panel imbriqué se déplacera cependant du DataGridView lorsque de nombreuses lignes sont ajoutées. Cet exemple suppose que toutes les lignes ont la même hauteur.

Mettre en place l'imbrication:

panel1.Parent = dataGridView1; 
panel1.Location = new Point(1, dataGridView1.ColumnHeadersHeight + 1); 

Déplacer le panneau si nécessaire:

void panelMove() 
{ 
    int rh = dataGridView1.RowCount == 0 ? 0 : dataGridView1.Rows[0].Height; 
    panel1.Location = new Point(1, 
      dataGridView1.ColumnHeadersHeight + 1 + dataGridView1.RowCount * rh); 
} 

Par exemple ici:

private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    panelMove() 
} 

private void dataGridView1_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e) 
{ 
    panelMove() 
}