Usuário com melhor resposta
Chamar outra classe pelo Form

Pergunta
-
Boa tarde,
Pessoal, alguém sabe me dizer o que está errado aqui? Estou tentando encapsular os controles de um form conforme abaixo:
Tenho um form (name: Form1) e um controle (label1)
Eu criei uma nova classe (abaixo) para acessar o controle label, mudando seu text para "Hello";
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace TesteControlesForm
{
class ControleFormClass
{
public void MetodoX(Form1 form)
{
form.label1.Text = "Hello";
}
}
}No form, eu estou tentando chamar esta classe conforme abaixo:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace TesteControlesForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
chamaMetodo();
}public void chamaMetodo()
{
ControleFormClass controle = new ControleFormClass();
controle.MetodoX();
}
}
}Quando vou testar, dá a seguinte mensagem de erro:
"There is no argument given that corresponds to the required formal parameter 'form' of 'ControleFormClass.MetodoX(Form1)'"
e eu não consegui entender essa mensagem até agora. Alguém consegue me dar um apoio?
Agradeço muito,
Abs,
Rafael Leonardo
Respostas
-
vê se ajuda,
https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/8bab287f-5024-4532-a872-ccd7350e1fc8/alterar-o-texto-de-uma-label-atravs-de-uma-classe-externa?forum=504
https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/76f6911b-ded6-45b2-8973-1f256098d186/alterar-label-atraves-de-classes-c?forum=504
Alexandre Maranhão amprog@outlook.com
- Marcado como Resposta Rafael Leonardo M A segunda-feira, 2 de janeiro de 2017 14:17
Todas as Respostas
-
blz
tem uma forma mais fácil de fazer isso
criando um método publico na área de código do próprio form1 sem a necessidade de outra classe,
ai chama esse método no construtor e o texto do label já altera.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); chamaMetodo(); } public void chamaMetodo() { label1.Text = "Hello"; } } }
Alexandre Maranhão amprog@outlook.com
-
só completando,
para que você utilize uma classe em outro local deixe como publica e
também quando você chama a label nessa nova classe dessa maneira que esta sendo feito
a nova classe não enxerga a label, nesse ponto não dá nenhum erro ai no seu código ?
Alexandre Maranhão amprog@outlook.com
- Editado Alexandre Maranhão sábado, 31 de dezembro de 2016 16:23
-
-
vê se ajuda,
https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/8bab287f-5024-4532-a872-ccd7350e1fc8/alterar-o-texto-de-uma-label-atravs-de-uma-classe-externa?forum=504
https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/76f6911b-ded6-45b2-8973-1f256098d186/alterar-label-atraves-de-classes-c?forum=504
Alexandre Maranhão amprog@outlook.com
- Marcado como Resposta Rafael Leonardo M A segunda-feira, 2 de janeiro de 2017 14:17
-