Usuário com melhor resposta
Como salvar um Label que muda e a sua condição durante o uso do aplicativo?

Pergunta
-
Olá Amigos do MSDN. Desenvolvi um aplicativo e nele instalei uma rotina que salva seus dados em um arquivo texto. Até agora está funcionando perfeitamente. Pois bem, resolvi incluir no aplicativo 28 Label's sendo que 14 tem no seu Text a letra D e os outros 14 tem a letra S, são as iniciais de S Sábado e D Domingo. Destes 28 Label's ficam aparecendo apenas 14 e os outros 14 ficam sob os outros 14, ou seja, eles estão sob as mesmas coordenadas no formulário. Clicando com mouse sobre qualquer um dos 14 Label's que aparecem, inclui na rotina sender.SendtoBack, eles invertem, variando entre o S e o D. Até aqui tudo funciona bem. A minha pergunta vem justamente do fato que quando vou salvar o aplicativo, existirão alguns Label's que estão como S e outros como D, então preciso salvar exatamente a configuração que os Label's ficaram e não sei como salva-los. Alguém pode me dar uma força com isso?
Grato/Durval
Respostas
-
Olá. Consegui resolver fazendo o seguinte: Ao invés de 28 Label's, mudei para 14 Label's e mudei a forma de alterar de S para D via rotina, o que antes eram 28 Label's pré-definidos nas configurações, agora são apenas 14 que mudo de S para D via rotina e deu tudo certo.
Grato/Durval
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 20 de novembro de 2017 07:30
Todas as Respostas
-
Olá Durval,
Uma pequena sugestão, você poderia usar a propriedade Tag do Label e numerar a sequencia, e depois salvar pela sequencia desejada:
var labels = from n in Controls.OfType<Label>().ToList() orderby int.Parse(n.Tag.ToString()) select n;
Abraços!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Senior Developer .NET C#
Development Leader at JAMSOFT Informática
Criador e Mantenedor do Entity Framework Core for Firebird
Contribuidor do Entity Framework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter -
Boa noite, Durval
É meio pre-histórico, mas veja se ajuda:
Private Sub salvar_dias()
Dim Str_Dias As String = Label1.Text & Label2.Text & Label3.Text & Label4.Text & Label5.Text & Label6.Text & Label7.Text & _
Label8.Text & Label9.Text & Label10.Text & Label11.Text & Label12.Text & Label13.Text & Label14.Text & _
Label15.Text & Label16.Text & Label17.Text & Label18.Text & Label19.Text & Label20.Text & Label21.Text & _
Label22.Text & Label23.Text & Label24.Text & Label25.Text & Label26.Text & Label27.Text & Label28.Text
Dim fluxoTexto As IO.StreamWriter
Dim Arquivo As String = "arquivo_dias_label.txt"
If Arquivo = Nothing Then
MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK)
Else
fluxoTexto = New IO.StreamWriter(Arquivo)
fluxoTexto.Write(Str_Dias)
fluxoTexto.Close()
End If
End Sub
Private Sub ler_dias()
Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String
If IO.File.Exists("arquivo_dias_label.txt") Then
fluxoTexto = New IO.StreamReader("arquivo_dias_label.txt")
linhaTexto = fluxoTexto.ReadLine
Dim Str_Leitura As String = ""
While linhaTexto <> Nothing
Str_Leitura &= linhaTexto & vbCrLf
linhaTexto = fluxoTexto.ReadLine
End While
fluxoTexto.Close()
Label1.Text = Str_Leitura.Substring(0, 1)
Label2.Text = Str_Leitura.Substring(1, 1)
Label3.Text = Str_Leitura.Substring(2, 1)
Label4.Text = Str_Leitura.Substring(3, 1)
Label5.Text = Str_Leitura.Substring(4, 1)
Label6.Text = Str_Leitura.Substring(5, 1)
Label7.Text = Str_Leitura.Substring(6, 1)
Label8.Text = Str_Leitura.Substring(7, 1)
Label9.Text = Str_Leitura.Substring(8, 1)
Label10.Text = Str_Leitura.Substring(9, 1)
Label11.Text = Str_Leitura.Substring(10, 1)
Label12.Text = Str_Leitura.Substring(11, 1)
Label13.Text = Str_Leitura.Substring(12, 1)
Label14.Text = Str_Leitura.Substring(13, 1)
Label15.Text = Str_Leitura.Substring(14, 1)
Label16.Text = Str_Leitura.Substring(15, 1)
Label17.Text = Str_Leitura.Substring(16, 1)
Label18.Text = Str_Leitura.Substring(17, 1)
Label19.Text = Str_Leitura.Substring(18, 1)
Label20.Text = Str_Leitura.Substring(19, 1)
Label21.Text = Str_Leitura.Substring(20, 1)
Label22.Text = Str_Leitura.Substring(21, 1)
Label23.Text = Str_Leitura.Substring(22, 1)
Label24.Text = Str_Leitura.Substring(23, 1)
Label25.Text = Str_Leitura.Substring(24, 1)
Label26.Text = Str_Leitura.Substring(25, 1)
Label27.Text = Str_Leitura.Substring(26, 1)
Label28.Text = Str_Leitura.Substring(27, 1)
Else
MessageBox.Show("Arquivo não existe")
End If
End Sub
Private Sub Bu_Salvar_Click(sender As System.Object, e As System.EventArgs) Handles Bu_Salvar.Click
salvar_dias()
End Sub
Private Sub Bu_Ler_Click(sender As System.Object, e As System.EventArgs) Handles Bu_Ler.Click
ler_dias()
End SubMARIANO1776
-
Olá Rafael, obrigado por me responder. Rafael, eu transformei os 28 label's num array fazendo assim:
Dim labelSD = New Label() {Label1, Label2....label 28 } Ai salvo eles num arquivo texto, assim:
For u=0 To 27
W.Wrait(labelSD(u)).Text
Next
Beleza, dá certinho, mas o meu problema ainda não consegui resolver.
O problema que ainda não consegui resolver é a configuração entre os S e os D. A minha rotina acima salva legal, mas ao carregar o arquivo texto para o aplicativo, não volta a mesma configuração que estava quando salvei. Por exemplo, quando salvei estava S, D, D, D, S, etc..(até 14) Ai quando carrego o arquivo texto não volta esta mesma configuração, por exemplo, volta D, D, S, D...
Ainda não estou sabendo como salvar a configuração que esta no momento de salvar.
Grato / Durval
-
Obrigado por responder Mariano. Ainda não testei essa sua rotina, mas se você der uma lida no que escrevi acima, talvez possa entender onde está minha dúvida. Olhando a tua rotina, me parece que ela salva os Label's, beleza, a rotina que tenho também está salvando legal, mas como escrevi acima, meu problema é salvar a configuração atual que está no formulário e não simplesmente salvar.
Vou dar um exemplo: Digamos que a configuração ao salvar seja essa: D, D, D, S, D, D, S, S até 14.
Pois bem, quando carrego o arquivo, quero que volte essa mesma configuração, e isso não acontece simplesmente salvando, tem que haver alguma forma de perguntar, antes de salvar se o Label1 está por cima ou o Label2 está por cima, talvez seja algo do tipo: If Label1.SendtoBack = True Then então salve, sei lá......
Abraço/Durval
-
Olá. Consegui resolver fazendo o seguinte: Ao invés de 28 Label's, mudei para 14 Label's e mudei a forma de alterar de S para D via rotina, o que antes eram 28 Label's pré-definidos nas configurações, agora são apenas 14 que mudo de S para D via rotina e deu tudo certo.
Grato/Durval
- Marcado como Resposta AndreAlvesLimaModerator segunda-feira, 20 de novembro de 2017 07:30
-
Bom dia.
Vejo que resolveu de outra maneira e bem mais simples.
Certa vez precisei fazer como você queria, somente que escondendo um botão atrás de outro.
Eu utilizei a propriedade visible dos botoes de modo que um fica visível e outro invisível.
Caso alguém se interesse pela ideia, segue código com as 28 labels, como pretendido originalmente
Private Sub salvar_dias()
Private Sub ler_dias()
Dim Str_Dias As String = Label1.Text & Label2.Text & Label3.Text & Label4.Text & Label5.Text & Label6.Text & Label7.Text & _
Label8.Text & Label9.Text & Label10.Text & Label11.Text & Label12.Text & Label13.Text & Label14.Text & _
Label15.Text & Label16.Text & Label17.Text & Label18.Text & Label19.Text & Label20.Text & Label21.Text & _
Label22.Text & Label23.Text & Label24.Text & Label25.Text & Label26.Text & Label27.Text & Label28.Text
If Label1.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label2.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label3.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label4.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label5.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label6.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label7.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label8.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label9.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label10.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label11.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label12.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label13.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label14.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label15.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label16.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label17.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label18.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label19.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label20.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label21.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label22.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label23.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label24.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label25.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label26.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label27.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
If Label28.Visible = False Then Str_Dias &= "F" Else Str_Dias &= "T"
Dim fluxoTexto As IO.StreamWriter
Dim Arquivo As String = "arquivo_dias_label.txt"
If Arquivo = Nothing Then
MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK)
Else
fluxoTexto = New IO.StreamWriter(Arquivo)
fluxoTexto.Write(Str_Dias)
fluxoTexto.Close()
End If
End Sub
Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String
If IO.File.Exists("arquivo_dias_label.txt") Then
fluxoTexto = New IO.StreamReader("arquivo_dias_label.txt")
linhaTexto = fluxoTexto.ReadLine
Dim Str_Leitura As String = ""
While linhaTexto <> Nothing
Str_Leitura &= linhaTexto & vbCrLf
linhaTexto = fluxoTexto.ReadLine
End While
fluxoTexto.Close()
Label1.Text = Str_Leitura.Substring(0, 1)
Label2.Text = Str_Leitura.Substring(1, 1)
Label3.Text = Str_Leitura.Substring(2, 1)
Label4.Text = Str_Leitura.Substring(3, 1)
Label5.Text = Str_Leitura.Substring(4, 1)
Label6.Text = Str_Leitura.Substring(5, 1)
Label7.Text = Str_Leitura.Substring(6, 1)
Label8.Text = Str_Leitura.Substring(7, 1)
Label9.Text = Str_Leitura.Substring(8, 1)
Label10.Text = Str_Leitura.Substring(9, 1)
Label11.Text = Str_Leitura.Substring(10, 1)
Label12.Text = Str_Leitura.Substring(11, 1)
Label13.Text = Str_Leitura.Substring(12, 1)
Label14.Text = Str_Leitura.Substring(13, 1)
Label15.Text = Str_Leitura.Substring(14, 1)
Label16.Text = Str_Leitura.Substring(15, 1)
Label17.Text = Str_Leitura.Substring(16, 1)
Label18.Text = Str_Leitura.Substring(17, 1)
Label19.Text = Str_Leitura.Substring(18, 1)
Label20.Text = Str_Leitura.Substring(19, 1)
Label21.Text = Str_Leitura.Substring(20, 1)
Label22.Text = Str_Leitura.Substring(21, 1)
Label23.Text = Str_Leitura.Substring(22, 1)
Label24.Text = Str_Leitura.Substring(23, 1)
Label25.Text = Str_Leitura.Substring(24, 1)
Label26.Text = Str_Leitura.Substring(25, 1)
Label27.Text = Str_Leitura.Substring(26, 1)
Label28.Text = Str_Leitura.Substring(27, 1)
If Str_Leitura.Substring(28, 1) = "F" Then Label1.Visible = False Else Label1.Visible = True
If Str_Leitura.Substring(29, 1) = "F" Then Label2.Visible = False Else Label2.Visible = True
If Str_Leitura.Substring(30, 1) = "F" Then Label3.Visible = False Else Label3.Visible = True
If Str_Leitura.Substring(31, 1) = "F" Then Label4.Visible = False Else Label4.Visible = True
If Str_Leitura.Substring(32, 1) = "F" Then Label5.Visible = False Else Label5.Visible = True
If Str_Leitura.Substring(33, 1) = "F" Then Label6.Visible = False Else Label6.Visible = True
If Str_Leitura.Substring(34, 1) = "F" Then Label7.Visible = False Else Label7.Visible = True
If Str_Leitura.Substring(35, 1) = "F" Then Label8.Visible = False Else Label8.Visible = True
If Str_Leitura.Substring(36, 1) = "F" Then Label9.Visible = False Else Label9.Visible = True
If Str_Leitura.Substring(37, 1) = "F" Then Label10.Visible = False Else Label10.Visible = True
If Str_Leitura.Substring(38, 1) = "F" Then Label11.Visible = False Else Label11.Visible = True
If Str_Leitura.Substring(39, 1) = "F" Then Label12.Visible = False Else Label12.Visible = True
If Str_Leitura.Substring(40, 1) = "F" Then Label13.Visible = False Else Label13.Visible = True
If Str_Leitura.Substring(41, 1) = "F" Then Label14.Visible = False Else Label14.Visible = True
If Str_Leitura.Substring(42, 1) = "F" Then Label15.Visible = False Else Label15.Visible = True
If Str_Leitura.Substring(43, 1) = "F" Then Label16.Visible = False Else Label16.Visible = True
If Str_Leitura.Substring(44, 1) = "F" Then Label17.Visible = False Else Label17.Visible = True
If Str_Leitura.Substring(45, 1) = "F" Then Label18.Visible = False Else Label18.Visible = True
If Str_Leitura.Substring(46, 1) = "F" Then Label19.Visible = False Else Label19.Visible = True
If Str_Leitura.Substring(47, 1) = "F" Then Label20.Visible = False Else Label20.Visible = True
If Str_Leitura.Substring(48, 1) = "F" Then Label21.Visible = False Else Label21.Visible = True
If Str_Leitura.Substring(49, 1) = "F" Then Label22.Visible = False Else Label22.Visible = True
If Str_Leitura.Substring(50, 1) = "F" Then Label23.Visible = False Else Label23.Visible = True
If Str_Leitura.Substring(51, 1) = "F" Then Label24.Visible = False Else Label24.Visible = True
If Str_Leitura.Substring(52, 1) = "F" Then Label25.Visible = False Else Label25.Visible = True
If Str_Leitura.Substring(53, 1) = "F" Then Label26.Visible = False Else Label26.Visible = True
If Str_Leitura.Substring(54, 1) = "F" Then Label27.Visible = False Else Label27.Visible = True
If Str_Leitura.Substring(55, 1) = "F" Then Label28.Visible = False Else Label28.Visible = True
Else
MessageBox.Show("Arquivo não existe")
End If
End Sub
Private Sub Bu_Salvar_Click(sender As System.Object, e As System.EventArgs) Handles Bu_Salvar.Click
salvar_dias()
End Sub
Private Sub Bu_Ler_Click(sender As System.Object, e As System.EventArgs) Handles Bu_Ler.Click
ler_dias()
End Sub Private Sub Label1_Click(sender As System.Object, e As System.EventArgs) Handles Label1.Click, Label15.Click
If Label1.Visible = True Then
Label1.Visible = False
Label15.Visible = True
Else
Label1.Visible = True
Label15.Visible = False
End If
End Sub
Private Sub Label2_Click(sender As System.Object, e As System.EventArgs) Handles Label2.Click, Label16.Click
If Label2.Visible = True Then
Label2.Visible = False
Label16.Visible = True
Else
Label2.Visible = True
Label16.Visible = False
End If
End Sub
Private Sub Label3_Click(sender As System.Object, e As System.EventArgs) Handles Label3.Click, Label17.Click
If Label3.Visible = True Then
Label3.Visible = False
Label17.Visible = True
Else
Label3.Visible = True
Label17.Visible = False
End If
End Sub
Private Sub Label4_Click(sender As System.Object, e As System.EventArgs) Handles Label4.Click, Label18.Click
If Label4.Visible = True Then
Label4.Visible = False
Label18.Visible = True
Else
Label4.Visible = True
Label18.Visible = False
End If
End Sub
Private Sub Label5_Click(sender As System.Object, e As System.EventArgs) Handles Label5.Click, Label19.Click
If Label5.Visible = True Then
Label5.Visible = False
Label19.Visible = True
Else
Label5.Visible = True
Label19.Visible = False
End If
End Sub
Private Sub Label6_Click(sender As System.Object, e As System.EventArgs) Handles Label6.Click, Label20.Click
If Label6.Visible = True Then
Label6.Visible = False
Label20.Visible = True
Else
Label6.Visible = True
Label20.Visible = False
End If
End Sub
Private Sub Label7_Click(sender As System.Object, e As System.EventArgs) Handles Label7.Click, Label21.Click
If Label7.Visible = True Then
Label7.Visible = False
Label21.Visible = True
Else
Label7.Visible = True
Label21.Visible = False
End If
End Sub
Private Sub Label8_Click(sender As System.Object, e As System.EventArgs) Handles Label8.Click, Label22.Click
If Label8.Visible = True Then
Label8.Visible = False
Label22.Visible = True
Else
Label8.Visible = True
Label22.Visible = False
End If
End Sub
Private Sub Label9_Click(sender As System.Object, e As System.EventArgs) Handles Label9.Click, Label23.Click
If Label9.Visible = True Then
Label9.Visible = False
Label23.Visible = True
Else
Label9.Visible = True
Label23.Visible = False
End If
End Sub
Private Sub Label10_Click(sender As System.Object, e As System.EventArgs) Handles Label10.Click, Label24.Click
If Label10.Visible = True Then
Label10.Visible = False
Label24.Visible = True
Else
Label10.Visible = True
Label24.Visible = False
End If
End Sub
Private Sub Label11_Click(sender As System.Object, e As System.EventArgs) Handles Label11.Click, Label25.Click
If Label11.Visible = True Then
Label11.Visible = False
Label25.Visible = True
Else
Label11.Visible = True
Label25.Visible = False
End If
End Sub
Private Sub Label12_Click(sender As System.Object, e As System.EventArgs) Handles Label12.Click, Label26.Click
If Label12.Visible = True Then
Label12.Visible = False
Label26.Visible = True
Else
Label12.Visible = True
Label26.Visible = False
End If
End Sub
Private Sub Label13_Click(sender As System.Object, e As System.EventArgs) Handles Label13.Click, Label27.Click
If Label13.Visible = True Then
Label13.Visible = False
Label27.Visible = True
Else
Label13.Visible = True
Label27.Visible = False
End If
End Sub
Private Sub Label14_Click(sender As System.Object, e As System.EventArgs) Handles Label14.Click, Label28.Click
If Label14.Visible = True Then
Label14.Visible = False
Label28.Visible = True
Else
Label14.Visible = True
Label28.Visible = False
End If
End SubMARIANO1776
- Sugerido como Resposta Mariano1776 segunda-feira, 20 de novembro de 2017 10:03
-
-