Results 1 to 14 of 14

Thread: Custom Tab Control - OnPaint vs MessageBox - Problem

  1. #1

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Question Custom Tab Control - OnPaint vs MessageBox - Problem

    Hi I will explain my problem,

    I got a MDI parent form that contains many child forms. For each child form I'm trying to display a messagebox(with .show).

    The issue here is that the messagebox appears over the child form, like it's supposed to, but then the child form reprints itself over the messagebox therefor hiding it. The message box still has the focus so if I press F10 it'll bring it back to the foreground.

    Is there a way keep the messagebox in the foreground to begin with?

    The tabcontrol I'm using come from this site : http://www.codeproject.com/Articles/...Second-Edition
    Last edited by warp123; Apr 5th, 2013 at 11:02 AM.

  2. #2
    Super Moderator dday9's Avatar
    Join Date
    Mar 2011
    Posts
    12,371

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    I'm not at a computer to check it, but there is the suspendlayout method which seems like it would work in this situation, just when the messagebox closes be sure to call resumelayout. That may not be the proper way, but I believe it would work for you in this case.
    "Code is like humor. When you have to explain it, it is bad." - Cory House
    VbLessons | HtmlLessons | CssLessons | Code Tags | Sword of Fury - Jameram

  3. #3

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    it's dont change anything if i suspendLayout all my childForm.
    Last edited by warp123; Apr 5th, 2013 at 11:00 AM.

  4. #4
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Forgive me if I'm being dim but what does "a MDI parent form that contains many child forms" have to do with a custom tab control?
    As the 6-dimensional mathematics professor said to the brain surgeon, "It ain't Rocket Science!"

    Reviews: "dunfiddlin likes his DataTables" - jmcilhinney

    Please be aware that whilst I will read private messages (one day!) I am unlikely to reply to anything that does not contain offers of cash, fame or marriage!

  5. #5

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Sorry i have forgot to explain the tabControl.

    Each ChildForm got a TabControl. If i use the System.Windows.Forms.TabControl i dont have this bug because the TabControl dont reprints itself over the messagebox.

  6. #6
    PowerPoster dunfiddlin's Avatar
    Join Date
    Jun 2012
    Posts
    8,245

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Ah, right. That makes it kinda tricky then since the fault is clearly the way the paint events are handled in the Tab control and it may not be possible to bypass that. Do these message boxes require a response or could they be built into the forms as text areas or as status messages? That's the only way off the top of my head that you can easily overcome the problem with certainty.
    As the 6-dimensional mathematics professor said to the brain surgeon, "It ain't Rocket Science!"

    Reviews: "dunfiddlin likes his DataTables" - jmcilhinney

    Please be aware that whilst I will read private messages (one day!) I am unlikely to reply to anything that does not contain offers of cash, fame or marriage!

  7. #7

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    these message box require a response , i know i can make a custom MessageBox but i dont really want that if i can bypass the bug.

  8. #8

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    I try your MessageBoxEx, but the MessageBox never come on the top because all the TabControl reprints itself over the messagebox. I have try with BreakPoint and when the MessageBox show all the TabControl behind reprints.

  9. #9
    VB For Fun Edgemeal's Avatar
    Join Date
    Sep 2006
    Location
    WindowFromPoint
    Posts
    4,255

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Quote Originally Posted by warp123 View Post
    I try your MessageBoxEx, but the MessageBox never come on the top because all the TabControl reprints itself over the messagebox. I have try with BreakPoint and when the MessageBox show all the TabControl behind reprints.
    That is really weird, Nothing should draw over a TopMost window except another TopMost window that is activated.
    I looked at the source code real quick and compiled it for FW 4.0, but only tried it real quick on a single form project (in Win7) and seemed to act OK.

    Can you post the source code for a simple project reproducing how the control fails?

  10. #10

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Post Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    I have make a makup for this bug. but i dont know why i cant attach my project.zip.

    I will post all my code class.

    Form1 :

    Code:
    Public Class Form1
        Friend WithEvents TabControl1 As CustomTabControl
        Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
        Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
        Friend WithEvents Label1 As System.Windows.Forms.Label
        Public Sub New()
            ' The Windows Forms Designer requires the following call.
            InitializeComponent()
            InitializeForm()
        End Sub
    
        Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            Dim res = MessageBoxEx("Save data before exit?", "MyApp - Save?", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
            If res = Windows.Forms.DialogResult.Cancel Then
                e.Cancel = True
            ElseIf res = Windows.Forms.DialogResult.Yes Then
                ' < add code here for Yes >
            End If
        End Sub
    
        Private Sub InitializeForm()
            Me.TabControl1 = New System.Windows.Forms.CustomTabControl()
            Me.TabPage1 = New System.Windows.Forms.TabPage()
            Me.TabPage2 = New System.Windows.Forms.TabPage()
            Me.Label1 = New System.Windows.Forms.Label()
            Me.TabControl1.SuspendLayout()
            Me.TabPage1.SuspendLayout()
            Me.SuspendLayout()
            '
            'TabControl1
            '
            Me.TabControl1.Controls.Add(Me.TabPage1)
            Me.TabControl1.Controls.Add(Me.TabPage2)
            '
    
            Me.TabControl1.DisplayStyleProvider.BorderColor = System.Drawing.SystemColors.ControlDark
            Me.TabControl1.DisplayStyleProvider.BorderColorHot = System.Drawing.SystemColors.ControlDark
            Me.TabControl1.DisplayStyleProvider.BorderColorSelected = System.Drawing.Color.FromArgb(CType(CType(132, Byte), Integer), CType(CType(130, Byte), Integer), CType(CType(132, Byte), Integer))
            Me.TabControl1.DisplayStyleProvider.CloserColor = System.Drawing.Color.DarkGray
            Me.TabControl1.DisplayStyleProvider.FocusTrack = True
            Me.TabControl1.DisplayStyleProvider.HotTrack = True
            Me.TabControl1.DisplayStyleProvider.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
            Me.TabControl1.DisplayStyleProvider.Opacity = 1.0!
            Me.TabControl1.DisplayStyleProvider.Overlap = 0
            Me.TabControl1.DisplayStyleProvider.Padding = New System.Drawing.Point(6, 3)
            Me.TabControl1.DisplayStyleProvider.Radius = 2
            Me.TabControl1.DisplayStyleProvider.ShowTabCloser = False
            Me.TabControl1.DisplayStyleProvider.TextColor = System.Drawing.SystemColors.ControlText
            Me.TabControl1.DisplayStyleProvider.TextColorDisabled = System.Drawing.SystemColors.ControlDark
            Me.TabControl1.DisplayStyleProvider.TextColorSelected = System.Drawing.SystemColors.ControlText
            Me.TabControl1.HotTrack = True
            Me.TabControl1.Location = New System.Drawing.Point(30, 12)
            Me.TabControl1.Name = "TabControl1"
            Me.TabControl1.SelectedIndex = 0
            Me.TabControl1.Size = New System.Drawing.Size(543, 413)
            Me.TabControl1.TabIndex = 0
            '
            'TabPage1
            '
            Me.TabPage1.Controls.Add(Me.Label1)
            Me.TabPage1.Location = New System.Drawing.Point(4, 23)
            Me.TabPage1.Name = "TabPage1"
            Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
            Me.TabPage1.Size = New System.Drawing.Size(535, 386)
            Me.TabPage1.TabIndex = 0
            Me.TabPage1.Text = "TabPage1"
            Me.TabPage1.UseVisualStyleBackColor = True
            '
            'TabPage2
            '
            Me.TabPage2.Location = New System.Drawing.Point(4, 23)
            Me.TabPage2.Name = "TabPage2"
            Me.TabPage2.Padding = New System.Windows.Forms.Padding(3)
            Me.TabPage2.Size = New System.Drawing.Size(535, 386)
            Me.TabPage2.TabIndex = 1
            Me.TabPage2.Text = "TabPage2"
            Me.TabPage2.UseVisualStyleBackColor = True
            '
            'Label1
            '
            Me.Label1.AutoSize = True
            Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 20.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
            Me.Label1.Location = New System.Drawing.Point(205, 141)
            Me.Label1.Name = "Label1"
            Me.Label1.Size = New System.Drawing.Size(107, 31)
            Me.Label1.TabIndex = 0
            Me.Label1.Text = "Hello !!!"
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(596, 437)
            Me.Controls.Add(Me.TabControl1)
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.TabControl1.ResumeLayout(False)
            Me.TabPage1.ResumeLayout(False)
            Me.TabPage1.PerformLayout()
            Me.ResumeLayout(False)
    
        End Sub
    
    End Class

  11. #11

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    MDIPARENT :

    I have split this code in 3 because this class is too long.

    Code:
    Imports System.Windows.Forms
    
    Public Class MDIParent
    
        Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripMenuItem.Click, NewToolStripButton.Click, NewWindowToolStripMenuItem.Click
            ' Créez une nouvelle instance du formulaire enfant.
            Dim ChildForm As New Form1
            ' Configurez-la en tant qu'enfant de ce formulaire MDI avant de l'afficher.
            ChildForm.MdiParent = Me
    
            m_ChildFormNumber += 1
            ChildForm.Text = "Fenêtre " & m_ChildFormNumber
    
            ChildForm.Show()
        End Sub
    
        Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click, OpenToolStripButton.Click
            Dim OpenFileDialog As New OpenFileDialog
            OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            OpenFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"
            If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
                Dim FileName As String = OpenFileDialog.FileName
                ' TODO: ajoutez le code ici pour ouvrir le fichier.
            End If
        End Sub
    
        Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SaveAsToolStripMenuItem.Click
            Dim SaveFileDialog As New SaveFileDialog
            SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
            SaveFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*" 
    
            If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
                Dim FileName As String = SaveFileDialog.FileName
                ' TODO: ajoutez le code ici pour enregistrer le contenu actuel du formulaire dans un fichier.
            End If
        End Sub
    
    
        Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click
            Me.Close()
        End Sub
    
        Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CutToolStripMenuItem.Click
            ' Utilisez My.Computer.Clipboard pour insérer les images ou le texte sélectionné dans le Presse-papiers
        End Sub
    
        Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click
            ' Utilisez My.Computer.Clipboard pour insérer les images ou le texte sélectionné dans le Presse-papiers
        End Sub
    
        Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PasteToolStripMenuItem.Click
            'Utilisez My.Computer.Clipboard.GetText() ou My.Computer.Clipboard.GetData pour extraire les informations du Presse-papiers.
        End Sub
    
        Private Sub ToolBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ToolBarToolStripMenuItem.Click
            Me.ToolStrip.Visible = Me.ToolBarToolStripMenuItem.Checked
        End Sub
    
        Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click
            Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked
        End Sub
    
        Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click
            Me.LayoutMdi(MdiLayout.Cascade)
        End Sub
    
        Private Sub TileVerticalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click
            Me.LayoutMdi(MdiLayout.TileVertical)
        End Sub
    
        Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click
            Me.LayoutMdi(MdiLayout.TileHorizontal)
        End Sub
    
        Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click
            Me.LayoutMdi(MdiLayout.ArrangeIcons)
        End Sub
    
        Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseAllToolStripMenuItem.Click
            ' Fermez tous les formulaires enfants du parent.
            For Each ChildForm As Form In Me.MdiChildren
                ChildForm.Close()
            Next
        End Sub
    
        Private m_ChildFormNumber As Integer
        Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(MDIParent))
            Me.MenuStrip = New System.Windows.Forms.MenuStrip
            Me.ToolStrip = New System.Windows.Forms.ToolStrip
            Me.StatusStrip = New System.Windows.Forms.StatusStrip
            Me.ContentsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.HelpMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.IndexToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.SearchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator
            Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ArrangeIconsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.CloseAllToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.NewWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.WindowsMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.CascadeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.TileVerticalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.TileHorizontalToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.OptionsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.HelpToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator
            Me.PrintPreviewToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.ToolTip = New System.Windows.Forms.ToolTip(Me.components)
            Me.ToolStripStatusLabel = New System.Windows.Forms.ToolStripStatusLabel
            Me.PrintToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.NewToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.OpenToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.SaveToolStripButton = New System.Windows.Forms.ToolStripButton
            Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator
            Me.PrintPreviewToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.PrintToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator
            Me.ExitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator
            Me.PrintSetupToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.SaveAsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.NewToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.FileMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.OpenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator
            Me.SaveToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.EditMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.UndoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.RedoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator
            Me.CutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.CopyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.PasteToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator
            Me.SelectAllToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ViewMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolBarToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.StatusBarToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
            Me.ToolsMenu = New System.Windows.Forms.ToolStripMenuItem
            Me.StatusStrip.SuspendLayout()
            Me.ToolStrip.SuspendLayout()
            Me.MenuStrip.SuspendLayout()
            Me.SuspendLayout()
            '
            'ContentsToolStripMenuItem
            '
            Me.ContentsToolStripMenuItem.Name = "ContentsToolStripMenuItem"
            Me.ContentsToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.F1), System.Windows.Forms.Keys)
            Me.ContentsToolStripMenuItem.Text = "&Contenu"
            '
            'HelpMenu
            '
            Me.HelpMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ContentsToolStripMenuItem, Me.IndexToolStripMenuItem, Me.SearchToolStripMenuItem, Me.ToolStripSeparator8, Me.AboutToolStripMenuItem})
            Me.HelpMenu.Name = "HelpMenu"
            Me.HelpMenu.Text = "&?"
            '
            'IndexToolStripMenuItem
            '
            Me.IndexToolStripMenuItem.Image = CType(resources.GetObject("IndexToolStripMenuItem.Image"), System.Drawing.Image)
            Me.IndexToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.IndexToolStripMenuItem.Name = "IndexToolStripMenuItem"
            Me.IndexToolStripMenuItem.Text = "&Index"
            '
            'SearchToolStripMenuItem
            '
            Me.SearchToolStripMenuItem.Image = CType(resources.GetObject("SearchToolStripMenuItem.Image"), System.Drawing.Image)
            Me.SearchToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.SearchToolStripMenuItem.Name = "SearchToolStripMenuItem"
            Me.SearchToolStripMenuItem.Text = "&Rechercher"
            '
            'ToolStripSeparator8
            '
            Me.ToolStripSeparator8.Name = "ToolStripSeparator8"
            '
            'AboutToolStripMenuItem
            '
            Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem"
            Me.AboutToolStripMenuItem.Text = "À pr&opos de..."
            '
            'ArrangeIconsToolStripMenuItem
            '
            Me.ArrangeIconsToolStripMenuItem.Name = "ArrangeIconsToolStripMenuItem"
            Me.ArrangeIconsToolStripMenuItem.Text = "&Réorganiser les icônes"
            '
            'CloseAllToolStripMenuItem
            '
            Me.CloseAllToolStripMenuItem.Name = "CloseAllToolStripMenuItem"
            Me.CloseAllToolStripMenuItem.Text = "&Fermer tout"
            '
            'NewWindowToolStripMenuItem
            '
            Me.NewWindowToolStripMenuItem.Name = "NewWindowToolStripMenuItem"
            Me.NewWindowToolStripMenuItem.Text = "&Nouvelle fenêtre"
            '
            'WindowsMenu
            '
            Me.WindowsMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewWindowToolStripMenuItem, Me.CascadeToolStripMenuItem, Me.TileVerticalToolStripMenuItem, Me.TileHorizontalToolStripMenuItem, Me.CloseAllToolStripMenuItem, Me.ArrangeIconsToolStripMenuItem})
            Me.WindowsMenu.Name = "WindowsMenu"
            Me.WindowsMenu.Text = "F&enêtres"
            '
            'CascadeToolStripMenuItem
            '
            Me.CascadeToolStripMenuItem.Name = "CascadeToolStripMenuItem"
            Me.CascadeToolStripMenuItem.Text = "&Cascade"
            '
            'TileVerticalToolStripMenuItem
            '
            Me.TileVerticalToolStripMenuItem.Name = "TileVerticalToolStripMenuItem"
            Me.TileVerticalToolStripMenuItem.Text = "Mosaïque &verticale"
            '
            'TileHorizontalToolStripMenuItem
            '
            Me.TileHorizontalToolStripMenuItem.Name = "TileHorizontalToolStripMenuItem"
            Me.TileHorizontalToolStripMenuItem.Text = "Mosaïque &horizontale"
            '
            'OptionsToolStripMenuItem
            '
            Me.OptionsToolStripMenuItem.Name = "OptionsToolStripMenuItem"
            Me.OptionsToolStripMenuItem.Text = "&Options"
            '
            'HelpToolStripButton
            '
            Me.HelpToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.HelpToolStripButton.Image = CType(resources.GetObject("HelpToolStripButton.Image"), System.Drawing.Image)
            Me.HelpToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.HelpToolStripButton.Name = "HelpToolStripButton"
            Me.HelpToolStripButton.Text = "Aide"
            '
            'ToolStripSeparator2
            '
            Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
            '
            'PrintPreviewToolStripButton
            '
            Me.PrintPreviewToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.PrintPreviewToolStripButton.Image = CType(resources.GetObject("PrintPreviewToolStripButton.Image"), System.Drawing.Image)
            Me.PrintPreviewToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.PrintPreviewToolStripButton.Name = "PrintPreviewToolStripButton"
            Me.PrintPreviewToolStripButton.Text = "Aperçu avant impression"
            '
            'ToolStripStatusLabel
            '
            Me.ToolStripStatusLabel.Name = "ToolStripStatusLabel"
            Me.ToolStripStatusLabel.Text = "État"
            '
            'StatusStrip
            '
            Me.StatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabel})
            Me.StatusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table
            Me.StatusStrip.Location = New System.Drawing.Point(0, 433)
            Me.StatusStrip.Name = "StatusStrip"
            Me.StatusStrip.Size = New System.Drawing.Size(632, 20)
            Me.StatusStrip.TabIndex = 7
            Me.StatusStrip.Text = "StatusStrip"
            '
            'PrintToolStripButton
            '
            Me.PrintToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.PrintToolStripButton.Image = CType(resources.GetObject("PrintToolStripButton.Image"), System.Drawing.Image)
            Me.PrintToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.PrintToolStripButton.Name = "PrintToolStripButton"
            Me.PrintToolStripButton.Text = "Imprimer"

  12. #12

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Code:
     '
            'ToolStripStatusLabel
            '
            Me.ToolStripStatusLabel.Name = "ToolStripStatusLabel"
            Me.ToolStripStatusLabel.Text = "État"
            '
            'StatusStrip
            '
            Me.StatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripStatusLabel})
            Me.StatusStrip.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Table
            Me.StatusStrip.Location = New System.Drawing.Point(0, 433)
            Me.StatusStrip.Name = "StatusStrip"
            Me.StatusStrip.Size = New System.Drawing.Size(632, 20)
            Me.StatusStrip.TabIndex = 7
            Me.StatusStrip.Text = "StatusStrip"
            '
            'PrintToolStripButton
            '
            Me.PrintToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.PrintToolStripButton.Image = CType(resources.GetObject("PrintToolStripButton.Image"), System.Drawing.Image)
            Me.PrintToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.PrintToolStripButton.Name = "PrintToolStripButton"
            Me.PrintToolStripButton.Text = "Imprimer"
            '
            'NewToolStripButton
            '
            Me.NewToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.NewToolStripButton.Image = CType(resources.GetObject("NewToolStripButton.Image"), System.Drawing.Image)
            Me.NewToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.NewToolStripButton.Name = "NewToolStripButton"
            Me.NewToolStripButton.Text = "Nouveau"
            '
            'ToolStrip
            '
            Me.ToolStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewToolStripButton, Me.OpenToolStripButton, Me.SaveToolStripButton, Me.ToolStripSeparator1, Me.PrintToolStripButton, Me.PrintPreviewToolStripButton, Me.ToolStripSeparator2, Me.HelpToolStripButton})
            Me.ToolStrip.Location = New System.Drawing.Point(0, 24)
            Me.ToolStrip.Name = "ToolStrip"
            Me.ToolStrip.Size = New System.Drawing.Size(632, 25)
            Me.ToolStrip.TabIndex = 6
            Me.ToolStrip.Text = "ToolStrip"
            '
            'OpenToolStripButton
            '
            Me.OpenToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.OpenToolStripButton.Image = CType(resources.GetObject("OpenToolStripButton.Image"), System.Drawing.Image)
            Me.OpenToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.OpenToolStripButton.Name = "OpenToolStripButton"
            Me.OpenToolStripButton.Text = "Ouvrir"
            '
            'SaveToolStripButton
            '
            Me.SaveToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
            Me.SaveToolStripButton.Image = CType(resources.GetObject("SaveToolStripButton.Image"), System.Drawing.Image)
            Me.SaveToolStripButton.ImageTransparentColor = System.Drawing.Color.Black
            Me.SaveToolStripButton.Name = "SaveToolStripButton"
            Me.SaveToolStripButton.Text = "Enregistrer"
            '
            'ToolStripSeparator1
            '
            Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
            '
            'PrintPreviewToolStripMenuItem
            '
            Me.PrintPreviewToolStripMenuItem.Image = CType(resources.GetObject("PrintPreviewToolStripMenuItem.Image"), System.Drawing.Image)
            Me.PrintPreviewToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.PrintPreviewToolStripMenuItem.Name = "PrintPreviewToolStripMenuItem"
            Me.PrintPreviewToolStripMenuItem.Text = "Aperçu a&vant impression"
            '
            'PrintToolStripMenuItem
            '
            Me.PrintToolStripMenuItem.Image = CType(resources.GetObject("PrintToolStripMenuItem.Image"), System.Drawing.Image)
            Me.PrintToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.PrintToolStripMenuItem.Name = "PrintToolStripMenuItem"
            Me.PrintToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.P), System.Windows.Forms.Keys)
            Me.PrintToolStripMenuItem.Text = "&Imprimer"
            '
            'ToolStripSeparator4
            '
            Me.ToolStripSeparator4.Name = "ToolStripSeparator4"
            '
            'ExitToolStripMenuItem
            '
            Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem"
            Me.ExitToolStripMenuItem.Text = "&Quitter"
            '
            'ToolStripSeparator5
            '
            Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
            '
            'PrintSetupToolStripMenuItem
            '
            Me.PrintSetupToolStripMenuItem.Name = "PrintSetupToolStripMenuItem"
            Me.PrintSetupToolStripMenuItem.Text = "Configuration de l'impression"
            '
            'SaveAsToolStripMenuItem
            '
            Me.SaveAsToolStripMenuItem.Name = "SaveAsToolStripMenuItem"
            Me.SaveAsToolStripMenuItem.Text = "Enregistrer &sous"
            '
            'NewToolStripMenuItem
            '
            Me.NewToolStripMenuItem.Image = CType(resources.GetObject("NewToolStripMenuItem.Image"), System.Drawing.Image)
            Me.NewToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.NewToolStripMenuItem.Name = "NewToolStripMenuItem"
            Me.NewToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
            Me.NewToolStripMenuItem.Text = "&Nouveau"
            '
            'FileMenu
            '
            Me.FileMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.NewToolStripMenuItem, Me.OpenToolStripMenuItem, Me.ToolStripSeparator3, Me.SaveToolStripMenuItem, Me.SaveAsToolStripMenuItem, Me.ToolStripSeparator4, Me.PrintToolStripMenuItem, Me.PrintPreviewToolStripMenuItem, Me.PrintSetupToolStripMenuItem, Me.ToolStripSeparator5, Me.ExitToolStripMenuItem})
            Me.FileMenu.ImageTransparentColor = System.Drawing.SystemColors.ActiveBorder
            Me.FileMenu.Name = "FileMenu"
            Me.FileMenu.Text = "&Fichier"
            '
            'OpenToolStripMenuItem
            '
            Me.OpenToolStripMenuItem.Image = CType(resources.GetObject("OpenToolStripMenuItem.Image"), System.Drawing.Image)
            Me.OpenToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.OpenToolStripMenuItem.Name = "OpenToolStripMenuItem"
            Me.OpenToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
            Me.OpenToolStripMenuItem.Text = "&Ouvrir"
            '
            'ToolStripSeparator3
            '
            Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
            '
            'SaveToolStripMenuItem
            '
            Me.SaveToolStripMenuItem.Image = CType(resources.GetObject("SaveToolStripMenuItem.Image"), System.Drawing.Image)
            Me.SaveToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.SaveToolStripMenuItem.Name = "SaveToolStripMenuItem"
            Me.SaveToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
            Me.SaveToolStripMenuItem.Text = "&Enregistrer"
            '
            'MenuStrip
            '
            Me.MenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileMenu, Me.EditMenu, Me.ViewMenu, Me.ToolsMenu, Me.WindowsMenu, Me.HelpMenu})
            Me.MenuStrip.Location = New System.Drawing.Point(0, 0)
            Me.MenuStrip.MdiWindowListItem = Me.WindowsMenu
            Me.MenuStrip.Name = "MenuStrip"
            Me.MenuStrip.Size = New System.Drawing.Size(632, 24)
            Me.MenuStrip.TabIndex = 5
            Me.MenuStrip.Text = "MenuStrip"
            '
            'EditMenu
            '
            Me.EditMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UndoToolStripMenuItem, Me.RedoToolStripMenuItem, Me.ToolStripSeparator6, Me.CutToolStripMenuItem, Me.CopyToolStripMenuItem, Me.PasteToolStripMenuItem, Me.ToolStripSeparator7, Me.SelectAllToolStripMenuItem})
            Me.EditMenu.Name = "EditMenu"
            Me.EditMenu.Text = "&Edition"
            '
            'UndoToolStripMenuItem
            '
            Me.UndoToolStripMenuItem.Image = CType(resources.GetObject("UndoToolStripMenuItem.Image"), System.Drawing.Image)
            Me.UndoToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.UndoToolStripMenuItem.Name = "UndoToolStripMenuItem"
            Me.UndoToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Z), System.Windows.Forms.Keys)
            Me.UndoToolStripMenuItem.Text = "&Annuler"
            '
            'RedoToolStripMenuItem
            '
            Me.RedoToolStripMenuItem.Image = CType(resources.GetObject("RedoToolStripMenuItem.Image"), System.Drawing.Image)
            Me.RedoToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.RedoToolStripMenuItem.Name = "RedoToolStripMenuItem"
            Me.RedoToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Y), System.Windows.Forms.Keys)
            Me.RedoToolStripMenuItem.Text = "&Rétablir"
            '
            'ToolStripSeparator6
            '
            Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
            '
            'CutToolStripMenuItem
            '
            Me.CutToolStripMenuItem.Image = CType(resources.GetObject("CutToolStripMenuItem.Image"), System.Drawing.Image)
            Me.CutToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.CutToolStripMenuItem.Name = "CutToolStripMenuItem"
            Me.CutToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.X), System.Windows.Forms.Keys)
            Me.CutToolStripMenuItem.Text = "Co&uper"
            '
            'CopyToolStripMenuItem
            '
            Me.CopyToolStripMenuItem.Image = CType(resources.GetObject("CopyToolStripMenuItem.Image"), System.Drawing.Image)
            Me.CopyToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.CopyToolStripMenuItem.Name = "CopyToolStripMenuItem"
            Me.CopyToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
            Me.CopyToolStripMenuItem.Text = "&Copier"
            '
            'PasteToolStripMenuItem
            '
            Me.PasteToolStripMenuItem.Image = CType(resources.GetObject("PasteToolStripMenuItem.Image"), System.Drawing.Image)
            Me.PasteToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Black
            Me.PasteToolStripMenuItem.Name = "PasteToolStripMenuItem"
            Me.PasteToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.V), System.Windows.Forms.Keys)
            Me.PasteToolStripMenuItem.Text = "&Coller"
            '
            'ToolStripSeparator7
            '
            Me.ToolStripSeparator7.Name = "ToolStripSeparator7"
            '
            'SelectAllToolStripMenuItem
            '
            Me.SelectAllToolStripMenuItem.Name = "SelectAllToolStripMenuItem"
            Me.SelectAllToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.A), System.Windows.Forms.Keys)
            Me.SelectAllToolStripMenuItem.Text = "Sélectionner &tout"
            '
            'ViewMenu
            '
            Me.ViewMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolBarToolStripMenuItem, Me.StatusBarToolStripMenuItem})
            Me.ViewMenu.Name = "ViewMenu"
            Me.ViewMenu.Text = "&Affichage"
            '
            'ToolBarToolStripMenuItem
            '
            Me.ToolBarToolStripMenuItem.Checked = True
            Me.ToolBarToolStripMenuItem.CheckOnClick = True
            Me.ToolBarToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked
            Me.ToolBarToolStripMenuItem.Name = "ToolBarToolStripMenuItem"
            Me.ToolBarToolStripMenuItem.Text = "&Barre d'outils"
            '
            'StatusBarToolStripMenuItem
            '
            Me.StatusBarToolStripMenuItem.Checked = True
            Me.StatusBarToolStripMenuItem.CheckOnClick = True
            Me.StatusBarToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked
            Me.StatusBarToolStripMenuItem.Name = "StatusBarToolStripMenuItem"
            Me.StatusBarToolStripMenuItem.Text = "&Barre d'état"
            '
            'ToolsMenu
            '
            Me.ToolsMenu.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.OptionsToolStripMenuItem})
            Me.ToolsMenu.Name = "ToolsMenu"
            Me.ToolsMenu.Text = "&Outils"
            '
            'MDIParent
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(632, 453)
            Me.Controls.Add(Me.ToolStrip)
            Me.Controls.Add(Me.MenuStrip)
            Me.Controls.Add(Me.StatusStrip)
            Me.IsMdiContainer = True
            Me.MainMenuStrip = Me.MenuStrip
            Me.Name = "MDIParent"
            Me.Text = "MDIParent"
            Me.StatusStrip.ResumeLayout(False)
            Me.ToolStrip.ResumeLayout(False)
            Me.MenuStrip.ResumeLayout(False)
            Me.ResumeLayout(False)
            Me.PerformLayout()
    
        End Sub

  13. #13

    Thread Starter
    New Member
    Join Date
    Mar 2013
    Location
    Québec, Canada
    Posts
    15

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Code:
    Friend WithEvents ContentsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents HelpMenu As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents IndexToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents SearchToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator8 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents AboutToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ArrangeIconsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents CloseAllToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents NewWindowToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents WindowsMenu As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents CascadeToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents TileVerticalToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents TileHorizontalToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents OptionsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents HelpToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents PrintPreviewToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents ToolTip As System.Windows.Forms.ToolTip
        Friend WithEvents ToolStripStatusLabel As System.Windows.Forms.ToolStripStatusLabel
        Friend WithEvents StatusStrip As System.Windows.Forms.StatusStrip
        Friend WithEvents PrintToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents NewToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents ToolStrip As System.Windows.Forms.ToolStrip
        Friend WithEvents OpenToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents SaveToolStripButton As System.Windows.Forms.ToolStripButton
        Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents PrintPreviewToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents PrintToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator4 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents ExitToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator5 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents PrintSetupToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents SaveAsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents NewToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents FileMenu As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents OpenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator3 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents SaveToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents MenuStrip As System.Windows.Forms.MenuStrip
        Friend WithEvents EditMenu As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents UndoToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents RedoToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator6 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents CutToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents CopyToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents PasteToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolStripSeparator7 As System.Windows.Forms.ToolStripSeparator
        Friend WithEvents SelectAllToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ViewMenu As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolBarToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents StatusBarToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
        Friend WithEvents ToolsMenu As System.Windows.Forms.ToolStripMenuItem
    End Class

    MsgBoxForeGround :

    Code:
    ' Force MsgBox to ForeGround & TopMost v1.02
    ' A workaround for when msgbox hides behind other windows.
    '
    ' Usage:
    ' 1) Add this module to your project.
    ' 2) Replace "MessageBox.Show" with "MessageBoxEx" where needed.
    
    Imports System.Runtime.InteropServices
    Module MsgBoxForeGround
        Private WithEvents msgTimer As New Timer
        Private msgCaption As String
    
        <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)>
        Private Function SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean
        End Function
    
        <DllImport("user32.dll", CharSet:=CharSet.Auto, EntryPoint:="FindWindow")> _
        Private Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
        End Function
    
        Private Const SWP_NOMOVE As UInteger = &H2
        Private Const SWP_NOSIZE As UInteger = &H1
        Private Const SWP_SHOWWINDOW As UInteger = &H40
        Private ReadOnly HWND_TOPMOST As New IntPtr(-1)
        <DllImport("user32.dll", EntryPoint:="SetWindowPos")> _
        Private Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As UInteger) As Boolean
        End Function
    
        Private Sub msgTimer_Tick(sender As Object, e As System.EventArgs) Handles msgTimer.Tick
            ' get handle to msgbox
            Dim hWnd As IntPtr = FindWindow("#32770", msgCaption)
            If Not hWnd.Equals(IntPtr.Zero) Then
                ' stop timer
                msgTimer.Stop()
                ' set msgbox topmost
                SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW)
                ' set msgbox foreground
                SetForegroundWindow(hWnd)
            End If
        End Sub
    
        ' // show message box & return dialog result //
        Public Function MessageBoxEx(ByVal text As String _
                , Optional ByVal caption As String = "" _
                , Optional ByVal buttons As MessageBoxButtons = MessageBoxButtons.OK _
                , Optional ByVal icon As MessageBoxIcon = MessageBoxIcon.None _
                , Optional ByVal defaultButton As MessageBoxDefaultButton = MessageBoxDefaultButton.Button1) _
                  As DialogResult
    
            msgCaption = caption 'msgbox titlebar text
            msgTimer.Interval = 30 ' timer speed
            msgTimer.Start() ' start timer
            ' show our msgbox
            Dim result As DialogResult = MessageBox.Show(text, caption, buttons, icon, defaultButton)
            msgTimer.Stop() ' make sure timer has stopped!
            msgTimer.Dispose()
            Return result ' return msgbox result.
        End Function
    End Module
    This is all my code in the project.

    1 - For the test, create some new form1 by press Fichier -> Nouveau

    2 - Then press Fenêtre -> Fermer tout

    When you will press "Fermer Tout" all Child Form will be close.

    Thx for your help

    BTw : Sorry my windows is in french.

  14. #14
    VB For Fun Edgemeal's Avatar
    Join Date
    Sep 2006
    Location
    WindowFromPoint
    Posts
    4,255

    Re: Custom Tab Control - OnPaint vs MessageBox - Problem

    Quote Originally Posted by warp123 View Post
    [CODE]
    Thx for your help

    BTw : Sorry my windows is in french.
    Well I made a simple MDI app and that CustomTabControl screwed up the app just like you say, very strange! I'd scrap it and look for a different control, maybe look in the code bank here? Good Luck!

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width