Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Sa 19.03.16 14:46 
hallo,
ich möchte gerne meine Tabelle ausdrucken, die ist erstellt mit datagridview1.
Mit listView1 habe ich es hinbekommen. Leider kennt datagridview keine Bounds. Was muss ich ändern?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
for (int x = 0; x < listView1.Items.Count; x++)
{
    #region
    Rectangle rt = new Rectangle();
    rt = listView1.Items[0].SubItems[3].Bounds; // übernimmt Rechteck der ersten Zeile, Spalte 0
    rt.X = 100;
    rt.Y = 100 + Höhe;
//    e.Graphics.FillRectangle(Brushes.DarkGray, rt); // füllt Hintergrund
    e.Graphics.DrawRectangle(p, rt);   //Zeichnet ein Rechteck
    e.Graphics.DrawString(listView1.Items[x].SubItems[0].Text.ToString(), listView1.Font, Brushes.Black, rt);
    #endregion
  
    // Es folgen viele anderen Regionen...
}


Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 19.03.16 15:10 
Jede DataGridViewCell hat eine ContentBounds-Eigenschaft, oder nach was suchst du?
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Sa 19.03.16 15:19 
was muss ich an meinem Code ändern, dass ich drucken kann?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 19.03.16 15:38 
Zitat:
was muss ich an meinem Code ändern, dass ich drucken kann?


Es ist ein anderes Control das anders funktioniert. Wie genau du was ändern mußt ist deine Sache (es ist kein simples "ersetze a duch b" Ding).

Ich würde zuerst einmal über die Columns iterieren den beim ausdrucken willst du sicher die Spaltenüberschriften auch drucken. Nebenbei kannst du dir beim iterieren über die Columns die Spaltenbreiten merken. Die Spaltenbreite je Spalte ist ja immer gleich. Und danach dann über die Rows iterieren. Die Row Höhe kann je Row unterschiedlich sein also mußt du die je Row neu lesen.

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 265
Erhaltene Danke: 1



BeitragVerfasst: Sa 19.03.16 23:01 
stimmt, man kann nicht einfach a gegen b tauschen, bin überrascht, das habe ich über goole gefunden.
csharp.net-informati...ridview-printing.htm