Eli miten otsikon mukainen toiminto tehtdään? Minulla tälläistä koodia kasassa:
Private Sub Kuva_tulostin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Kuva_tulostin.Click ' tässä jotain esittelyja tms. If TabControl1.SelectedTab Is Tavarat Then PrintDGV = TL_DGV AddHandler PrintDocument1.PrintPage, AddressOf PrintDocument1_PrintPage PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.ShowDialog() ' printti muotoillaan omassa metodissa, johon tämä printDGV välitetään End if ' tähän vissiin pitäisi saada se printDGV:m tyhjennys(tai siis tässä 'olen yrittänyt sitä tyhjentää) end sub
Ongelmana on se että tulosta kahdelta eri välilehdeltä(lyhensin vähän koodia) ja näiden datagirdviewereiden formaatti erilainen. Jos ohjelmaa ei käytä alhaalla niin edellisen printtauksen muotoilu jää kummittelemaan seuraavaan prittiin ja pistää sen sekaisin. Eli oisko vinkkiä miten tyhjennys kannattaisi tehdä? Olen kokellut monenlaista esim.
printDGV.Rows.clear() printDGV.Rows.Columns() printDGV.Datasource = nothing
jne. mutta mikään ei toimi toivotulla tavalla.
edit. kirotusvirheitä
Moikka Sam76!
eipä taida auttaa DataGridView-objektin tyhjennys, mutta testaa josko näin...
Imports System Imports System.Drawing Imports System.Drawing.Printing Imports System.Windows.Forms Public Class Form1: Inherits Form Friend WithEvents PrintDocument1 As PrintDocument Friend WithEvents PrintDGV As DataGridView '.... Private Sub Kuva_tulostin_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Kuva_tulostin.Click PrintDocument1 = New PrintDocument() AddHandler PrintDocument1.PrintPage, _ AddressOf Me.PrintDocument1_PrintPage PrintDGV = tabControl1.SelectedTab.Controls(0) Me.printPreviewDialog1.Document = PrintDocument1 With PrintDialog1 .AllowSomePages = True .Document = PrintDocument1 If .ShowDialog = DialogResult.OK Then Select Case PrintDGV.Parent.Name Case "tabPage1" '... Case "tabPage2" '... End Select End If End With PrintDGV = Nothing RemoveHandler PrintDocument1.PrintPage, _ AddressOf Me.PrintDocument1_PrintPage PrintDocument1 = Nothing End Sub '... End Class
Aihe on jo aika vanha, joten et voi enää vastata siihen.