Scroll na panelu - problem

0

Witam

Mam pytanie odnośnie zwykłego windowsowego Panelu. Mając scroll na takim panelu i przesuwając "ciągnąc" za niego w górę jest wszystko ok. Przeciągając go w dół mam wrażenie, że kontrolki się odświeżają (w sensie jakiegoś repaint). Zaznaczę, że są panele do renderowania pdf-ów. Czy jest jakaś różnica czy przeciągamy scrolla w dół czy w górę? Chciałbym żeby to działało w ten sam sposób. Zachowuje się tak jakby kontrolki, które są na dole się za każdym razem przeładowywały (w górę tego NIE MA;/). Proszę o jakieś sugestie...

0

To rozwiązanie nie działa. Próbowałem też czegoś takiego:

public class ScrollPanel : System.Windows.Forms.Panel
{
   private const int WM_HSCROLL = 0x114;
   private const int WM_VSCROLL = 0x115;

   protected override void WndProc (ref Message m)
   {
      if ((m.Msg == WM_HSCROLL || m.Msg == WM_VSCROLL) 
          && (((int)m.WParam & 0xFFFF) == 5))
      {
          // Change SB_THUMBTRACK to SB_THUMBPOSITION
         m.WParam = (IntPtr)(((int)m.WParam & ~0xFFFF) 
                    | 4);
      }
      base.WndProc (ref m);
   }
}

ale też nie przynosi oczekiwanego efektu.

Zaznaczę, że przy użyciu PanelControl firmy devexpress nie ma takiego efektu przy przesuwaniu w dół. Tutaj nie za bardzo pasuje mi użycie DevExpress-a. Proszę o dlasze sugestie...

0

Kolejne spostrzeżenia. Jeżeli pod panel na który występuje ten problem wstawię panel z DevExpress problemu nie ma.

Zamiast panelu komercyjnego próbowałem utworzyć swój panel:

 public partial class DoubleBufferPanel : Panel
    {
        public DoubleBufferPanel()
        {
            InitializeComponent();

            this.DoubleBuffered = true;

            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);

            this.UpdateStyles();
        }
    }

ale też niestety nie pomaga. Coś ten windows-owy panel jest "ułomny". Tylko nie wiem w czym tkwi problem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1