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