Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.08.16 16:57 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 03.08.16 19:14 
Hallo,

wenn Du in der frListView-Klasse mal in OnDrawSubItem alles auskommentierst außer die letzte Zeile, Dein Programm startest und die zwei Buttons klickst, siehst Du, dass da irgendwas falsch gezeichnet wird. Wenn Du dann mal die Spaltenbreiten änderst, wird es noch falscher ;)

Soviel erst mal für den Augenblick, ich schau aber noch weiter rein :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 03.08.16 19:30 
Okay, mach einfach nur OnDrawSubItem. OnDrawItem scheint die Box von allem zu bekommen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.08.16 19:33 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 03.08.16 19:36 
Nee, nur noch OnDrawSubItem überschreiben und OnDrawItem nicht mehr. So ist die Darstellung bei mir korrekt:

ausblenden volle Höhe C#-Quelltext
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:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
public class frListView : ListView
  {
    private HorizontalAlignment _columnTextAlign = HorizontalAlignment.Center;
    private HorizontalAlignment _itemTextAlign = HorizontalAlignment.Center;

    public frListView()
    {
      this.OwnerDraw = true;
    }

    protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e)
    {
      using (StringFormat sf = new StringFormat())
      {
        switch (_columnTextAlign)
        {
          case HorizontalAlignment.Left:
            sf.Alignment = StringAlignment.Near;
            break;
          case HorizontalAlignment.Center:
            sf.Alignment = StringAlignment.Center;
            break;
          case HorizontalAlignment.Right:
            sf.Alignment = StringAlignment.Far;
            break;
        }
        e.DrawBackground();
        //Soll den Text schön mittig ausrichten
        SizeF sSize = e.Graphics.MeasureString(e.Header.Text, e.Font);
        Rectangle rect = e.Bounds;
        int sY = (int)((rect.Height / 2f) - (sSize.Height / 2f) - 1) * -1;
        rect.Inflate(0, sY);
        //
        e.Graphics.DrawString(e.Header.Text, e.Font, Brushes.Black, rect, sf);
      }
      base.OnDrawColumnHeader(e);
    }

    protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e)
    {
      using (StringFormat sf = new StringFormat())
      {
        switch (_itemTextAlign)
        {
          case HorizontalAlignment.Left:
            sf.Alignment = StringAlignment.Near;
            break;
          case HorizontalAlignment.Center:
            sf.Alignment = StringAlignment.Center;
            break;
          case HorizontalAlignment.Right:
            sf.Alignment = StringAlignment.Far;
            break;
        }
        e.DrawBackground();
        //Soll den Text schön mittig ausrichten
        SizeF sSize = e.Graphics.MeasureString(e.SubItem.Text, e.SubItem.Font);
        Rectangle rect = e.Bounds;
        int sY = (int)((rect.Height / 2f) - (sSize.Height / 2f)) * -1;
        rect.Inflate(0, sY);
        //
        e.Graphics.DrawString(e.SubItem.Text, e.SubItem.Font, Brushes.Black, rect, sf);
      } 
      base.OnDrawSubItem(e);
    }

    [Browsable(true)]
    [Description("Richtet den Text in den Spalten aus.")]
    [Category("ColumnTextAlign")]
    public HorizontalAlignment ColumnTextAlign
    {
      get { return _columnTextAlign; }
      set { _columnTextAlign = value; }
    }

    [Browsable(true)]
    [Description("Richtet den Text in den Zellen aus.")]
    [Category("ItemTextAlign")]
    public HorizontalAlignment ItemTextAlign
    {
      get { return _itemTextAlign; }
      set { _itemTextAlign = value; }
    }
  }

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.08.16 19:40 
- Nachträglich durch die Entwickler-Ecke gelöscht -