Bonjour,
je suis novice dans le dev et je venais de commencé un projet en vb lorsque mon patron ma proposé une formation en C#. J'ai décidé de refaire mon projet en c# mais je rencontre des difficulté à le convertir.
Pour récupérer la valeur une textbox dans un fichier class.vb j’utilisai pour exemple ( Form1.TextBox1.Text ), mais en C# cela ne fonctionne pas. En utilisant "Public static void" je parvient à appeler ma class dans la form1, mais l'inverse ne fonctionne pas.
J'ai essayer de déclarer ma textbox en "public static void" mais cela appel "textBox_Retention_TextChanged" en non "textBox_Retention".
Exemple code VB qui fonctionne bien:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Public Class Class_Infobulle_Purge Public Shared Function Infobulle_Retention_auto() ' Activation des messages infobulle dans la textebox '=================================================== Dim infobulle = New ToolTip() infobulle.IsBalloon = True infobulle.OwnerDraw = True infobulle.ForeColor = Color.Red infobulle.ToolTipTitle = "Erreur de Saisie" infobulle.ToolTipIcon = ToolTipIcon.Error Dim texte_value_min As Integer = 1 Dim texte_value_max As Integer = 365 On Error GoTo ErrTextbox1 ' Si la textBox est vide on ne vérifie rien '=========================================== If (Form1.TextBox_Retention.Text = Nothing) Then Exit Function End If 'Récupération et conversion de la largeur dans une variabler '========================================================== Dim texte_value As Integer texte_value = CInt(Form1.TextBox_Retention.Text) 'Vérification de la valeur minimum et maximum entrée dans la textBox, Si la valeur saisie n'est pas correcte 'on affiche un Message d'erreur et on vide la textBox '============================================================================================================ If (texte_value > texte_value_max) Then infobulle.Show("Le Maximum de jours autorisé est de 365/J", Form1.TextBox_Retention, 0, -75, 3000) Form1.TextBox_Retention.Text = Nothing End If If (texte_value < texte_value_min) Then infobulle.Show("Votre Saisi 0 Jour est Interdite, Veuillez Séléctionner une Valeur de 1 à 465/J", Form1.TextBox_Retention, 0, -75, 3000) Form1.TextBox_Retention.Text = Nothing End If Exit Function 'Message d'erreur ErrTextbox1: infobulle.Show("Veuillez Saisir Uniquement une Valeur Numérique pour la Période de Rétention", Form1.TextBox_Retention, 0, -75, 3000) Form1.TextBox_Retention.Text = Nothing End Function
Exemple de code en C# qui ne parvient par à récupérer les valeur des ma 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
22
23
24
25
26
27
28
29
30
31
32
33
34 using System; using System.Drawing; using System.Windows.Forms; namespace Purge { class Class_infobulle { public static void test() { //Activation des messages infobulle dans la textebox //=================================================== var infobulle = new ToolTip(); infobulle.IsBalloon = true; infobulle.OwnerDraw = true; infobulle.ForeColor = Color.Red; infobulle.ToolTipTitle = "Erreur de Saisie"; infobulle.ToolTipIcon = ToolTipIcon.Error; int texte_value_min = 1; int texte_value_max = 365; try { // Si la textBox est vide on ne vérifie rien //=========================================== if (string.IsNullOrEmpty(Form1.textBox_Retention.Text)) //ERREUR { return; } //Récupération et conversion de la largeur dans une variable //========================================================== int texte_value; texte_value = Convert.ToInt32(Form1.textBox_Retention.Text); //ERREUR
En VB.net mes class communique avec les objet de la form1, mais pas en C#.
Quelqu'un pourrait m'aider à comprendre d’où peut venir mon erreur.
Merci
Partager