bonjour
je travail sur un projet de type Windows Universal sous C#, ma classe principale créer par defaut est nommée MainPage dans le namespace EnergyMeter, voici comment elle ressemble :
du cote de l'interface j'ai créer un bouton et un textbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 namespace EnergyMeter { public sealed partial class MainPage : Page { // code ici // Declaration des propriétés private int a; // Declaration des méthodes // Evenement private void button_Click(object sender, RoutedEventArgs e) { // executer un code // je fait appel a la fonction } } }
j'ai ajouté une nouvelle classe au projet nome ADE7878 dans un nouvelle feuille. cette classe represente le nom de la puce ADE7878 avec laquelle je suis entrain de travailler. je dois sauvegarder dedans les noms des registres, leur adresses et d'autres methodes utiles ......
je veux par exemple dans la methode public void SetTextbox() de la classe ADE7878 modifier le textbox qui appartient a la calsse principale MainPage mais j'arrive pas a le faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 namespace EnergyMeter { public class ADE7878 { /*The ADE7878 I2c address*/ public const byte I2C_ADDR = 0x38; ....... /*methode de la classe ADE7878*/ public void SetTextbox() { // code ici } ....... } }
de meme pour modifier par exemple la variable 'a' de la classe MainPage.
dans le cas ideal je procede de cette maniere :
mais bon ca marchera pas car le compilateur me retourne une erreure car la synthaxe est incorrecte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public void SetTextbox() { MainPage.textBox.Text = "Bonjour"; // synthaxe incorrecte }
j'ai cherché un peux sur le net et j'ai trouvé cette solution mais sans issue
j'ai ajouté une propriete Name dans la classe MainPage comme suit :
et du coté de la classe ADE7878 j'ai procedé de cette maniere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public string Name { get {return this.textBox.Text;} set {this.textBox.Text = value;} }
si j'etais sous visual basic normalement ca marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public void SetTextbox() { MainPage .Name = "Bonjour"; // erreur de synthaxe }
je ne peux pas le faire de cette maniere car la proprieté Name n'est pas de type static ou const pour l'acceder a partir de la classe directement, donc je dois declarer une instance g1 de la classe Mainpage ensuite je fais appel a la proprieté Name comme suit :
le textbox n'a pas ete modifié et ca me parait logique car j'ai fait appel a la propriete Name a partir de l'instance creer g1. ca me parait logique si j'ai fais appel a Name a partir de la classe elle meme sans utiliser l'instance MainPage .Name = "Bonjour"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 MainPage g1 = new MainPage(); public void SetTextbox() { g1.Name = "Bonjour"; // }
Que dois-je faire
Partager