Solved

Simple question about PictureBoxes

Posted on 2009-04-08
5
533 Views
Last Modified: 2012-05-06
:  Ok, well, I have a trial subscription, but I googled a bunch on this, and nothing that I found worked. Perhaps the experts exchange model is the best for solutions, as required by the workplace.

I am dynamically adding buttons to an inherited form class (the class inherits "form", is maximized, has a background and a picturebox on it to make it look nice ... as simple as it gets).... anyway, I am dynamically adding buttons, and the buttons always show behind the picturebox, even as I use bringToFront, and even if I do this AFTER adding to the control array (after me.controls.add).

I think I'm missing something very fundamental here, but I didn't plan on spending three hours trying to get a label on top of a picturebox, so I'm asking for help.

Thanks
0
Comment
Question by:jj_30
  • 3
5 Comments
 
LVL 2

Author Comment

by:jj_30
ID: 24098203
I cant see my code and it's making me thing that it's missing. Here it is...


Public Class Main 

    Private Sub FormSpecific()

        Me.lblPassword.Parent = Me.picField

        Me.lblPassword.Location = New Point(10, 4)  'relative positioning to the parent

        Me.lblPassword.BringToFront()

        Me.lblPassword.BackColor = Color.Transparent

        Me.picField.BackColor = Color.Transparent

        Me.picField.SendToBack()
 

        For i As Integer = 0 To Me.Controls.OfType(Of GlassButton).Count - 1

            Me.Controls.Item(i).BringToFront()

        Next

    End Sub

    Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        FormSpecific()
 

        'Go to db, get users

        Dim objDataTable As New DataTable

        objDataTable = dbReader("SELECT * FROM TblUsers ORDER BY UserID")
 

        Me.KeyPreview = True
 

        'Dad, mom, etc. Now put some buttons on the main form.

        For i As Integer = 0 To objDataTable.Rows.Count - 1

            With objDataTable(i)

                'draw buttons

                Dim currButton As New GlassButton

                currButton.Text = objDataTable.Rows(i)(1)

                currButton.AvailableOption = IIf(.Item("UserEnabled") = 1, True, False)
 

                Dim currButtonLoc As New Point

                currButtonLoc.X = xStart

                currButtonLoc.Y = yStart + i * (currButton.Height + nButtonSpacing * 2) 'top and bottom margins nButtonSpacing ea.

                currButton.Location = currButtonLoc
 

                Me.Controls.Add(currButton)

            End With

        Next i
 

    End Sub
 

End Class

Open in new window

0
 
LVL 11

Accepted Solution

by:
bmatumbura earned 125 total points
ID: 24098432
0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 24098907
This jumps out at me:

        For i As Integer = 0 To Me.Controls.OfType(Of GlassButton).Count - 1
            Me.Controls.Item(i).BringToFront()
        Next

The "i" value is simply going from 0 to Count -1...BUT the there is NO correlation between "i" and the corresponding returned controls position in the Items() collection:

            Me.Controls.Item(i).BringToFront() ' <----- it doesn't make sense to use "i" here

I think you actually wanted this:

        For Each gb As GlassButton In Me.Controls.OfType(Of GlassButton)()
            gb.BringToFront()
        Next

0
 
LVL 2

Author Closing Comment

by:jj_30
ID: 31568076
Why, yes ...   it does help.

Thanks
0
 
LVL 2

Author Comment

by:jj_30
ID: 24100016
Hm, the OfType enumeration doesn't seem to work like I thought. It's linq-related.

me.controls.oftype(of GlassButton) returns something that's hard to parse.

It has <>3__source, <>7__wrapa5, etc. ... Perhaps a little advanced for me today.

Thanks for your help though!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
Introduction As chip makers focus on adding processor cores over increasing clock speed, developers need to utilize the features of modern CPUs.  One of the ways we can do this is by implementing parallel algorithms in our software.   One recent…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …
The is a quite short video tutorial. In this video, I'm going to show you how to create self-host WordPress blog with free hosting service.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now