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

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Aug 18 06:49:13 EDT 2008


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


           Summary: WS_EX_COMPOSITED does not remove flashing
           Product: Mono: Class Libraries
           Version: 2.0
          Platform: x86
        OS/Version: Windows Vista
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: kobruleht2 at hot.ee
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


To reproduce:

1. Run the code
2. Resize window

Observed:

Listbox contents flashes on resize.

Expected:

Listbox contents should not flash.
WS_EX_COMPOSITED should cause form controls to use double buffering.



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
{

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams result = base.CreateParams;
            result.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
            return result;
        }
    }

    public ReportDialogForm()
    {
        tabControl1 = new TabControl();
        tabPage1 = new TabPage();
        reportListBox = new ListBox();
        tabControl1.Anchor = ((AnchorStyles)((((AnchorStyles.Top |
AnchorStyles.Bottom)
                                | AnchorStyles.Left)
                                | AnchorStyles.Right)));
        tabControl1.Controls.Add(tabPage1);
        tabControl1.Location = new Point(0, 0);
        tabControl1.Padding = new Point(0, 0);
        tabControl1.SelectedIndex = 0;
        tabControl1.Size = new Size(591, 296);
        tabControl1.TabIndex = 0;
        tabPage1.Controls.Add(reportListBox);
        tabPage1.Location = new Point(4, 29);
        tabPage1.Margin = new Padding(0);
        tabPage1.Size = new Size(583, 263);
        tabPage1.TabIndex = 0;
        tabPage1.Layout += new LayoutEventHandler(tabPage1_Layout);
        reportListBox.Anchor = AnchorStyles.None;
        reportListBox.Size = new Size(287, 384);
        reportListBox.TabIndex = 1000;
        ClientSize = new Size(588, 292);
        Controls.Add(tabControl1);

        for (int i = 0; i < 100; i++)
            reportListBox.Items.Add("MMMMMMMMMMMMMMMMMMMMMM");

        Load += new EventHandler(ReportDialogForm_Load);
    }

    void ReportDialogForm_Load(object sender, EventArgs e)
    {
        StartPosition = FormStartPosition.Manual;
        Location = new Point(10, 10);
        ClientSize = new Size(400, 400);
    }



    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();
    }

    TabControl tabControl1;
    TabPage tabPage1;
    ListBox 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.
You are the assignee for the bug.


More information about the mono-bugs mailing list