Click here to Skip to main content
15,892,737 members
Home / Discussions / .NET (Core and Framework)
   

.NET (Core and Framework)

 
GeneralRe: [VB.NET 2008] How to detect if a page of a TabControl is selected (Windows CE) Pin
Zaf Khan12-Dec-12 2:13
Zaf Khan12-Dec-12 2:13 
Question[VB.NET 2008] How to get control on objects created at runtime Pin
steve_94966135-Dec-12 4:54
professionalsteve_94966135-Dec-12 4:54 
AnswerRe: [VB.NET 2008] How to get control on objects created at runtime Pin
Eddy Vluggen5-Dec-12 5:40
professionalEddy Vluggen5-Dec-12 5:40 
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
steve_94966135-Dec-12 20:59
professionalsteve_94966135-Dec-12 20:59 
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
Eddy Vluggen6-Dec-12 2:27
professionalEddy Vluggen6-Dec-12 2:27 
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
steve_94966136-Dec-12 3:26
professionalsteve_94966136-Dec-12 3:26 
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
Eddy Vluggen6-Dec-12 5:02
professionalEddy Vluggen6-Dec-12 5:02 
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
steve_94966136-Dec-12 21:25
professionalsteve_94966136-Dec-12 21:25 
Thanks for your reply.
Try and try at the end I've found a solution that I'll show you, but I have some questions before.

Eddy Vluggen wrote:
"NUD1", the name-property of the UpDown control, must be unique within the form. It'll generate a variable with that name, and that's what "NUD1" points to; it's not a property of the tabpage, it's the name of a single control.

...and that was the problem: I put a NumericUpDown control in a UserControl and I give it an unique name (NUD1). When, at runtime, I create 10 instances of the UserControl, what are the unique names of the 10 NumericUpDown controls originated from NUD1?

If I make the value of the NumericUpDown available over a property like this (if I'm not wrong):
VB
Public Property NUDVal() As Int32
  Get
    Return NUD1.Value
  End Get
  Set(ByVal value As Int32)
    NUD1.Value = value
  End Set
End Property

also this property has a unique name... until the UserControl is one, but when I create 10 instances of the UserControl?

So I thought to lists of objects... and that is my solution.

In the UserControl I created my two NumericUpDown controls at runtime, not in the designer, and I added them to an ArrayList. I also added a CheckBox, in the designer, to use the event "Click" for calculations that serve.
In Form1, the main form, when I create the 10 instances of the UserControl, I also add the ArrayList of controls of every UserControl to another ArrayList declared in the form... here is the code:
VB
'User control
Public Class base
  'list that will contain the controls
  Public Objs As ArrayList = New ArrayList
  'controls
  Private n1, n2 As NumericUpDown

  Sub New()
    Dim pos As Point

    ' Chiamata richiesta da Progettazione Windows Form.
    InitializeComponent()

    ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
    n1 = New NumericUpDown
    pos.X = 209
    pos.Y = 90
    n1.Location = pos
    Controls.Add(n1)
    n2 = New NumericUpDown
    pos.X = 209
    pos.Y = 132
    n2.Location = pos
    Controls.Add(n2)
    'I add the controls to the list
    Objs.Add(n1)
    Objs.Add(n2)

  End Sub

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    'go to next page
    CType(Parent.Parent, TabControl).SelectedIndex += 1
  End Sub

  Private Sub CheckBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
    Dim val1, val2, id, curid As Int32

    'index of the current page
    id = CType(Parent.Parent, TabControl).SelectedIndex
    'index in the arraylist of the objects of this page
    curid = id - 1
    'if I am in the third tab... the first useful, that is the second created at runtime
    If curid > 0 Then
      'value of the first NumericUpDown of the previous page
      val1 = CType(CType(Form1.ObjsUC.Item(curid - 1), ArrayList).Item(0), NumericUpDown).Value
      'value of the second NumericUpDown of the previous page
      val2 = CType(CType(Form1.ObjsUC.Item(curid - 1), ArrayList).Item(1), NumericUpDown).Value
      'value of the first NumericUpDown of the current page
      n1.Value = val1 + val2
    End If
  End Sub

End Class


VB
'Form1
Public Class Form1
  'list that will contain the lists of controls
  Public ObjsUC As ArrayList = New ArrayList

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim mypag As TabPage
    Dim myuc As base

    For i As Int32 = 0 To 10
      mypag = New TabPage
      myuc = New base
      myuc.Parent = mypag
      'I add the list to the list
      ObjsUC.Add(myuc.Objs)
      mypag.Text = "Pag" & i.ToString
      mypag.Name = "Pag" & i.ToString
      TabControl1.TabPages.Insert(1 + i, mypag)
    Next

  End Sub

End Class

In this way all the controls I need are inside a list, and I know what kind of object is every element of the list because I put them in the list, I don't need to loop in the list and check each element.
So in the "Click" event of the CheckBox I can "reach" the values of the NumericUpDown controls of the previous page (or of other pages) pointing to them in the list.

Well... it works... although I have some difficulty in evaluate the elegance of this code...

What do you think about this solution?

And I have another question about the pages of the TabControl, but for this I open another topic...
GeneralRe: [VB.NET 2008] How to get control on objects created at runtime Pin
Eddy Vluggen7-Dec-12 1:16
professionalEddy Vluggen7-Dec-12 1:16 
QuestionTesting Practices Pin
AnalogNerd5-Dec-12 4:44
AnalogNerd5-Dec-12 4:44 
AnswerRe: Testing Practices Pin
Eddy Vluggen5-Dec-12 5:36
professionalEddy Vluggen5-Dec-12 5:36 
GeneralRe: Testing Practices Pin
AnalogNerd5-Dec-12 5:45
AnalogNerd5-Dec-12 5:45 
GeneralRe: Testing Practices Pin
Eddy Vluggen5-Dec-12 5:53
professionalEddy Vluggen5-Dec-12 5:53 
GeneralRe: Testing Practices Pin
Dave Kreskowiak5-Dec-12 6:29
mveDave Kreskowiak5-Dec-12 6:29 
GeneralRe: Testing Practices Pin
Dave Kreskowiak5-Dec-12 6:26
mveDave Kreskowiak5-Dec-12 6:26 
GeneralRe: Testing Practices Pin
Eddy Vluggen5-Dec-12 6:34
professionalEddy Vluggen5-Dec-12 6:34 
GeneralRe: Testing Practices Pin
Dave Kreskowiak5-Dec-12 9:55
mveDave Kreskowiak5-Dec-12 9:55 
GeneralRe: Testing Practices Pin
Eddy Vluggen6-Dec-12 0:08
professionalEddy Vluggen6-Dec-12 0:08 
QuestionHow to make a list view and gallerie view on a product page list on some e-commerce Pin
El Dev4-Dec-12 0:19
El Dev4-Dec-12 0:19 
AnswerRe: How to make a list view and gallerie view on a product page list on some e-commerce Pin
Eddy Vluggen4-Dec-12 0:37
professionalEddy Vluggen4-Dec-12 0:37 
Questionframework 2.0 and win98 Pin
caradri3-Dec-12 22:37
caradri3-Dec-12 22:37 
AnswerRe: framework 2.0 and win98 Pin
Richard MacCutchan3-Dec-12 23:01
mveRichard MacCutchan3-Dec-12 23:01 
AnswerRe: framework 2.0 and win98 Pin
Eddy Vluggen3-Dec-12 23:04
professionalEddy Vluggen3-Dec-12 23:04 
AnswerRe: framework 2.0 and win98 Pin
Pete O'Hanlon3-Dec-12 23:07
mvePete O'Hanlon3-Dec-12 23:07 
GeneralRe: framework 2.0 and win98 Pin
Eddy Vluggen3-Dec-12 23:31
professionalEddy Vluggen3-Dec-12 23:31 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.