IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Impression d'une ligne de ListView en Visual Studio 2017 [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Par défaut Impression d'une ligne de ListView en Visual Studio 2017
    Bonjour à tous et à toutes, je suis débutant en programmation. Je réalise un application de gestion d'archive. J'ai une listview ou je peux voir mes données depuis ma base de donnée (Mysql Wampserver). Mon problème j'ai des difficultés pour imprimer une ligne de ma listview a partir d'un bouton imprimer.
    voici mon code que j'ai derrière mon bouton imprimer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim printer As New ClassPrint(Me.ListViewIndividus.Items(0).IndexOf)
    printer.printdoc()
    Aidez moi svp avec de ! Merci d'avance pour vos reponses
    Images attachées Images attachées  

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Pour imprimer un ListViewItem ou tout le ListView (visible) il faut :

    1/ Ajouter une référence à :System.Printing

    2/ Utiliser PrintDialog.PrintVisual...

    Code exemple :
    code behind.cs du class data exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    namespace WpfPrintXPS
    {
     
     
        public class Person
     
        {
     
            public string Id { get; set; }
     
            public string Name { get; set; }
     
            public string Description { get; set; }
     
        }
        public class People : ObservableCollection<Person>
     
        {
     
            public People()
     
            {
     
                for (int i = 0; i < 10; i++)
     
                {
     
                    this.Add(new Person() { Id = i.ToString(), Name = "Name" + i.ToString(), Description = "Description" + i.ToString() });
     
                }
     
            }
     
        }
    }
    code xaml du form user:
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <Window x:Class="WpfPrintXPS.WinPrintVisual"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfPrintXPS"
            Title="Print Line" Height="300" Width="300">
        <Window.DataContext>
            <local:People />
        </Window.DataContext>
        <StackPanel x:Name="pnl">
            <Button Content="Print Selected Item" x:Name="printItem" Click="printItem_Click"/>
            <ListView
                x:Name="lv"
                ItemsSource="{Binding }"
                IsSynchronizedWithCurrentItem="True"
                SelectionChanged="lv_SelectionChanged">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Id"   >
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Margin="5" FontSize="14" Foreground="Blue" Text="{Binding Id}" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="Name"   >
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock  Margin="5" FontSize="14" Foreground="Blue" Text="{Binding Name}" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="Description" Width="140">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock  Margin="5"  FontSize="14" Foreground="Blue" FontWeight="Bold" Text="{Binding Description}" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
        </StackPanel>
    </Window>
    code behind .cs du form user:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    namespace WpfPrintXPS
    {
        /// <summary>
        /// Logique d'interaction pour WinPrintVisual.xaml
        /// </summary>
        public partial class WinPrintVisual : Window
        {
            public WinPrintVisual()
            {
                InitializeComponent();
            }
     
     
     
            private ListViewItem lvItem = null;
            private void lv_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ListView lv = sender as ListView;
                if (lv != null)
                {
                    int index = lv.SelectedIndex;
                    lvItem = lv.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem;
                }
     
            }
            private void printItem_Click(object sender, RoutedEventArgs e)
            {
                if (lvItem == null) return;
     
                // Create a Print dialog.
                PrintDialog printDialog = new PrintDialog();
                if (printDialog.ShowDialog() != true)
                {
                    return;
                }
                this.pnl.Visibility = Visibility.Hidden;
                // Magnify the output by a factor of 2.
                lvItem.LayoutTransform = new ScaleTransform(1, 1);
                // Define a margin.
                int pageMargin = 5;
                // Get the size of the page.
                Size pageSize =
                    new Size(
                        printDialog.PrintableAreaWidth - pageMargin * 2,
                        printDialog.PrintableAreaHeight - 20);
                // Trigger the sizing of the element.
                lvItem.Measure(pageSize);
                lvItem.Arrange(new Rect(pageMargin, pageMargin,
                pageSize.Width, pageSize.Height));
                // Print the element.
                printDialog.PrintVisual(lvItem, "A Scaled Drawing");
                // Remove the transform and make the element visible again.
                lvItem.LayoutTransform = null;
                pnl.Visibility = Visibility.Visible; ;
     
            }
     
     
        }
    }
    Bon code...

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 4
    Par défaut CA FONCTIONNE BIEN AVEC DATAGRIDVIEW
    Merci infiniment pour votre aide. j'ai trouvé un peu difficile ce que vous m'avez suggérer mais finis par trouver quelque chose. je vais partagé peut être que ça va intéressé quelqu'un autre. j'ai utilisé un RichTexBox pour affichage l’état d'impression
    lorsque je clique sur mon bouton 'Rapport'
    Nom : DevRapport.PNG
Affichages : 745
Taille : 7,4 Ko

    et un autre bouton que j'ai nommé 'Imprimé'. Lorsque je clique sur le bouton Imprimer j'ai ça
    Nom : Capture1_LI.jpg
Affichages : 786
Taille : 265,2 Ko

    code derrière le bouton 'Rapport'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Private Sub BtnRappot_Click(sender As Object, e As EventArgs) Handles BtnRappot.Click
            RichTextBox1.Clear()
            RichTextBox1.AppendText(vbTab + "DIRECTION DE L'ENVIRONNEMENT ET DU DEVELOPPEMENT DURABLE" + vbNewLine)
            RichTextBox1.AppendText("******************************************************************************************" + vbNewLine)
            RichTextBox1.AppendText("Date inhumation :" + vbTab + vbTab + Date_d_inhumationTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Numéro :" + vbTab + vbTab + vbTab + NumeroTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Nom :" + vbTab + vbTab + vbTab + vbTab + NomTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Prénoms :" + vbTab + vbTab + vbTab + PrénomTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Age :" + vbTab + vbTab + vbTab + vbTab + AgeTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Sexe :" + vbTab + vbTab + vbTab + vbTab + SexeTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Numéro de quittance :" + vbTab + vbTab + N_quittanceTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Numéro de pemis :" + vbTab + vbTab + N_permisTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Carré :" + vbTab + vbTab + vbTab + vbTab + CarreTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Emplacement :" + vbTab + vbTab + vbTab + EmplacementTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Type Terrain :" + vbTab + vbTab + vbTab + Type_de_terrainTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Durrée de concession :" + vbTab + vbTab + Durre_de_concessionTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Entreprise :" + vbTab + vbTab + vbTab + EntrepriseTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Renouvellement :" + vbTab + vbTab + RenouvellementTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("Reservation :" + vbTab + vbTab + vbTab + ReservationTextBox.Text + vbNewLine)
            RichTextBox1.AppendText("******************************************************************************************" + vbNewLine)
            RichTextBox1.AppendText(vbTab + vbTab + "DISTRICT AUTONOME D'ABIDJAN")
        End Sub
    code derrière le bouton 'Imprimer'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub BtnImprimer_Click(sender As Object, e As EventArgs) Handles BtnImprimer.Click
            Try
                Dim PrintDoc As New PrintDocument
                AddHandler PrintDoc.PrintPage, AddressOf Me.PrintText
                PrintDoc.Print()
                PrintPreviewDialog1.ShowDialog()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            Finally
                Beep()
            End Try
        End Sub
    Passez une bonne soiré

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. macro pour impression d'une ligne excel sous word
    Par schwoby dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 12h02
  2. [VBA-Excel] Garder une ligne de listview selectionné
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 14h55
  3. Réponses: 5
    Dernier message: 27/04/2006, 13h51
  4. [Impression] d'une ligne.
    Par petitcoucou31 dans le forum Langage
    Réponses: 6
    Dernier message: 11/10/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo