Jump to content

Recommended Posts

Posted

boas,

por exemplo tenho uma form para meter por exemplo o numero "5" depois clico numa seta e quero que noutra form distribuia "1" "2" "3" "4" "5" por as textboxs que tenho la! como fasso?

Obrigado

Posted

Tenho uma textbox numa form! Insiro o numero "2" ao clicar numa seta ira aparecer outra form em que queria que aparecesse em duas texbox o numero 1 numa e o numero 2 noutra! fiz-me entender?

Posted

ou seja dependendo do numero terias de destribuir o mumero de algarismos até esse digito??'

mesmo que seja com 1000???

Sim até esse digito!

Lol até 1000 não mas até 85 sim!  🙂

Posted
Dim numero As Integer
        numero = (nome da textbox onde inseres o numero)
        Dim i As Integer
        For i As Integer = 1 To numero
            'instrução para abrir o form e por mais um numero...
        Next

é simples...

"use windows, você merece!"

Posted

ups...

esqueci-me de um pormenor....

a variavel i tem contar sempre mais um!

xD

O ciclo FOR faz isso por ti. É para isso que ele serve, nestes propósitos.

@Batista15, e tu tens lá essas 85 textboxes?

Só por curiosidade, e quissá optimização, qual é o intuito desse formulário?

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

O ciclo FOR faz isso por ti. É para isso que ele serve, nestes propósitos.

@Batista15, e tu tens lá essas 85 textboxes?

Só por curiosidade, e quissá optimização, qual é o intuito desse formulário?

Sim tenho! E uma folha de obra!

Posted

Pois, mas não devias ter. :dontgetit:

Era mais fácil se fossem adicionadas em runtime 🙂

Sendo assim, podes resolver o assunto aplicando este método:

- Dá nomes a todas as textboxes no seguinte formato: TXi, onde i é o número da textbox.

Por exemplo TX5, TX43, TX85, etc...

- Cria este Private Sub:

   Private Sub ProcuraEPreencheCaixaDeTexto(ByVal Numero As Integer)
        For Each C As Control In Me.Controls
            If C.Name = "TX" & Numero Then
                Dim EstaTX As TextBox = CType(C, TextBox)
                EstaTX.Text = Numero.ToString
            End If
        Next
    End Sub

Agora, para testares mete isto num botão, ou lá onde arrancas a funcionalidade:

        Dim NumeroMaximo As Integer = 3
        For i As Integer = 1 To NumeroMaximo
            ProcuraEPreencheCaixaDeTexto(i)
        Next

Nota que a variável NumeroMaximo representa o numero que tens lá na tal caixa de texto com o número.



Dim numero As Integer
        numero = (nome da textbox onde inseres o numero)
        Dim i As Integer
        For i As Integer = 1 To numero
            'instrução para abrir o form e por mais um numero...
        Next

é simples...

Só um reparo duduml, ao escreveres For i as Integer = 1, já a estás a declarar e até a inicializar. Não precisas do Dim i as Integer.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Dim numero As Integer
        numero = (nome da textbox onde inseres o numero)
        Dim i As Integer
        For i As Integer = 1 To numero
            'instrução para abrir o form e por mais um numero...
        Next

é simples...

Isso e na seta! E agora na form onde quero que apareça os números distribuídos?

Posted

Esse ciclo não te vai resolver nada... nothing personal duduml 😁

Acabei de escrever e testar a solução que te dei.

Só não tinha reparado que era entre 2 forms, portanto aqui vai:

No form onde tens a tal seta para distribuir o numero, metes isto na seta:

(onde Form1 é substituído por o nome do form que tem as 85 textboxes)

        Dim NumeroMaximo As Integer = 2
        Dim F1 As New Form1
        F1.NumeroMax = NumeroMaximo
        F1.Show()

Na form das 85 textboxes:

(e não te esqueças de lhe dar nomes TX1, TX2, TX3, TX4, etc....)

    Private NumeroMaximo As Integer = 0

    Public WriteOnly Property NumeroMax()
        Set(ByVal value)
            NumeroMaximo = value
        End Set
    End Property

    Private Sub Distribuí()
        For i As Integer = 1 To NumeroMaximo
            ProcuraEPreencheCaixaDeTexto(i)
        Next
    End Sub

    Private Sub ProcuraEPreencheCaixaDeTexto(ByVal Numero As Integer)
        For Each C As Control In Me.Controls
            If C.Name = "TX" & Numero Then
                Dim EstaTX As TextBox = CType(C, TextBox)
                EstaTX.Text = Numero.ToString
            End If
        Next
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Distribuí()
    End Sub

A ideia é passar o numero a desmembrar através de uma propriedade e proceder ao preenchimento no arranque do form.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Esse ciclo não te vai resolver nada... nothing personal duduml 😁

Acabei de escrever e testar a solução que te dei.

Só não tinha reparado que era entre 2 forms, portanto aqui vai:

No form onde tens a tal seta para distribuir o numero, metes isto na seta:

(onde Form1 é substituído por o nome do form que tem as 85 textboxes)

        Dim NumeroMaximo As Integer = 2
        Dim F1 As New Form1
        F1.NumeroMax = NumeroMaximo
        F1.Show()

Na form das 85 textboxes:

(e não te esqueças de lhe dar nomes TX1, TX2, TX3, TX4, etc....)

    Private NumeroMaximo As Integer = 0

    Public WriteOnly Property NumeroMax()
        Set(ByVal value)
            NumeroMaximo = value
        End Set
    End Property

    Private Sub Distribuí()
        For i As Integer = 1 To NumeroMaximo
            ProcuraEPreencheCaixaDeTexto(i)
        Next
    End Sub

    Private Sub ProcuraEPreencheCaixaDeTexto(ByVal Numero As Integer)
        For Each C As Control In Me.Controls
            If C.Name = "TX" & Numero Then
                Dim EstaTX As TextBox = CType(C, TextBox)
                EstaTX.Text = Numero.ToString
            End If
        Next
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Distribuí()
    End Sub

A ideia é passar o numero a desmembrar através de uma propriedade e proceder ao preenchimento no arranque do form.

O código esta todo correcto mas não esta a trabalhar! E não me esqueci dos "TX"

Posted

Então testa-o duduml.

Sinceramente não estou a ver como resolves o problema dessa forma 🙂

Batista15, alguma coisa estás a fazer mal. Tenho-o à frente a funcionar.

Os nomes que deste têm de ser com letra grande. TX é diferente de Tx ou de tx e até de tX.

Verifica melhor, e se mesmo assim não conseguires, envio-te o projecto.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Então testa-o duduml.

Sinceramente não estou a ver como resolves o problema dessa forma 🙂

Batista15, alguma coisa estás a fazer mal. Tenho-o à frente a funcionar.

Os nomes que deste têm de ser com letra grande. TX é diferente de Tx ou de tx e até de tX.

Verifica melhor, e se mesmo assim não conseguires, envio-te o projecto.

Ja verifiquei todo! E ta mesmo tudo, não sei porque não está a fazer!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.