[Mono-bugs] [Bug 417962] WS_EX_COMPOSITED does not remove flashing

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Sep 11 14:08:11 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=417962

User kobruleht2 at hot.ee added comment
https://bugzilla.novell.com/show_bug.cgi?id=417962#c4





--- Comment #4 from andrus moor <kobruleht2 at hot.ee>  2008-09-11 12:08:11 MDT ---
I created new testcase below which uses double buffering for everything.
This removes flashing in MONO. 
However it does not remove flashing in .NET.

If comments are removed from line

tabPage1.Layout += tabPage1_Layout;

old scrollbar and position are strangely visible during resize.
It seems that SuspendLayout() is not working in MONO. Should I create separate
bug for this?

using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Drawing;

public class Test
{
    static void Main()
    {
        Application.Run(new ReportDialogForm());
    }
}

class ReportDialogForm : Form
{
    public ReportDialogForm()
    {
        DoubleBuffered = true;
        tabControl1 = new BufferedTabControl();
        tabPage1 = new BufferedTabPage();
         reportListBox = new BufferedListBox();
        tabControl1.Dock = DockStyle.Fill;
        tabControl1.Controls.Add(tabPage1);
        tabPage1.Controls.Add(reportListBox);
        //tabPage1.Layout += tabPage1_Layout;
        reportListBox.Dock = DockStyle.Fill;
        Controls.Add(tabControl1);
        for (int i = 0; i < 100; i++)
           
reportListBox.Items.Add("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
    }

    class BufferedListBox : ListBox
    {
        internal BufferedListBox()
        {
            DoubleBuffered = true;
        }
    }

    class BufferedTabControl : TabControl 
    {
        internal BufferedTabControl()
        {
            DoubleBuffered = true;
        }
    }

    class BufferedTabPage : TabPage
    {
        internal BufferedTabPage()
        {
            DoubleBuffered = true;
        }

    }

    void tabPage1_Layout(object sender, LayoutEventArgs e)
    {
        SuspendLayout();
        int height = 100;
        reportListBox.Top = height;
        reportListBox.Height = tabPage1.Height - height;
        reportListBox.Width = tabPage1.Width / 2;
        reportListBox.Left = 0;
        ResumeLayout();
    }

    BufferedTabControl  tabControl1;
    BufferedTabPage tabPage1;
    BufferedListBox reportListBox;
}


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list