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 subOngelmana 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 ClassAihe on jo aika vanha, joten et voi enää vastata siihen.