Problemino con la stampa

mercoledì 07 dicembre 2005 - 19.39

papini.sascha Profilo | Newbie

Ciao ragazzi come sempre ho un piccolo problemino ...
ovvero ho un programma che mi deve stampare una listview ... fino a qui non sarebbe un problema ... perchè la funzione l'ho implementato e tutto ok ... il problema è che una riga non deve essere + lunga di 70 caratteri altrimenti mi sballa tutto
perchè il campo nome li viene definito un quadrato di dimensioni fisse ...
'nome
RectF = New RectangleF(20.1, 100.3 + i * offset, 110, 3)
alignF.Alignment = StringAlignment.Near
e.Graphics.DrawRectangle(lineaRettangoli, 20, 100 + i * offset, 110, 3)
e.Graphics.DrawString(connDb.query.GetString(1).TrimEnd, fontPiccolo, Brushes.Black, RectF, alignF)

e se io volessi fare un rettangolo che mi si adattasse alla lunghezza della stringa come dovrei fare ??

Cteniza Profilo | Guru

Prova a guardare MeasureString prima di disegnarla.


papini.sascha Profilo | Newbie

Ti ringrazio vivamente per la dritta ho risolto il problema ...
ma come si dice risolto uno ne scappa fuori subito subito un'altro ...

While connDb.query.Read
'nome
stringSize = e.Graphics.MeasureString(connDb.query.GetString(1).TrimEnd, fontPiccolo, layoutSize, newStringFormat, charactersFitted, linesFilled)
e.Graphics.DrawRectangle(New Pen(Color.Red, 0.1), 20, 100, 110, stringSize.Height + y)
RectF = New RectangleF(20.1, 100.3 + y, 110, stringSize.Height + y)
alignF.Alignment = StringAlignment.Near
e.Graphics.DrawString(connDb.query.GetString(1).TrimEnd, fontPiccolo, Brushes.Black, RectF, alignF)
...
y = y + stringSize.Height
end While

se faccio così la funzione va una bellezza, ma se metto
alignf.LineAlignment=StringAlignment.Center
per mettere allineato nel centro la stringra mi sballa tutto ... mica sapete dirmi perchè ???

grazie mille Sascha

papini.sascha Profilo | Newbie

mi ero dimenticato le dichiarazione delle variabili
Dim RectF As RectangleF
Dim alignF As New System.Drawing.StringFormat

RectF = New RectangleF(10.1, 97.3, 10, 3)
alignF.Alignment = StringAlignment.Center
e.Graphics.DrawRectangle(lineaRettangoli, 10, 97, 10, 3)
e.Graphics.DrawString("List. ID", fontPiccolo, Brushes.Black, RectF, alignF)


Dim pTotale, p As Double
' Set maximum layout size.
Dim layoutSize As New SizeF(110, 70)
layoutSize.ToSize()

' Set string format.
Dim newStringFormat As New StringFormat

Dim charactersFitted As Integer
Dim linesFilled As Integer
Dim stringSize As New SizeF
Dim pp As Double
Dim y As Single = 0

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5