IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

TextBox avec plusieurs Windows Form


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Par défaut TextBox avec plusieurs Windows Form
    Salut à tous,

    J'ai une interface ou j'ai plusieurs textbox et je récupère leur valeur dans une fonction dans class Form2.
    Cependant vu que j'aurais les mêmes textbox dans plusieurs interfaces j'aurais voulu faire une fonction générique qui récupère les données selon l'interface utilisé.

    Dans form2.cpp
    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
    String^Form2::valeur_limites()
    {
    	String^ min_ab;  String^ max_ab; String^ pas_ab; String^ min_or; String^ max_or; String^ pas_or;
    	String^ total;
     
     
    	min_ab=textBox_min_ab->Text->ToString();		
    	max_ab=textBox_max_ab->Text->ToString();
    	pas_ab=textBox_pas_ab->Text->ToString();
    	min_or=textBox_min_or->Text->ToString();
    	max_or=textBox_max_or->Text->ToString();
    	pas_or=textBox_pas_or->Text->ToString();
    	total="x"+" "+min_ab+" "+max_ab+" "+pas_ab+" "+min_or+" "+max_or+" "+pas_or+" ";
     
    	return total;
    }
    Dans communication.cpp : (là où sont mes fonctions génériques)
    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
    int* Limites()
    {
    	
    	Form2 gForm2;
    	String^limites;
    	char* lim;
    	if (type_gene==0)
    	{
    		//on récupère les données de l'interface teleview
    	}
    	if (type_gene==1)
    	{
    		//on récupère les données de l'interface dektek
    		limites=gForm2.valeur_limites();
    	}
    	//convertit un string en char
    	lim= (char*)(void*)Marshal::StringToHGlobalAnsi(limites);
    
    	char* pt=lim;	static char argv[32][32];	char* pargv[7];
    					
    	//on décortique la chaine total pour avoir les valeurs des limites
    	int i = 0;		
    	int num[6];
    	while (true)
    	{
    		pt = strstr(lim, " ");		// find space
    		if (pt == 0)				// space not find
    		{
    			strcpy(argv[i++], lim);	// last command
    			break;					// end of cmd
    		}
    		*pt = 0;					// end of string
    		strcpy(argv[i++], lim);		// one command
    		pargv[i] = &argv[i][0];		// init pointer
    
    		*pt++;						// next command
    		strcpy(lim, pt);			// erase previous command
    	}			
    	// on convertit les char en int
    	num[0] = atoi(pargv[1]); // freq min -> Abcisse Min
    	num[1] = atoi(pargv[2]); // freq max -> Abscisse Max
    	num[2] = atoi(pargv[3]); // pas freq -> Abcisse Pas
    	num[3] = atoi(pargv[4]); // niveau min -> Ordonnée Min
    	num[4] = atoi(pargv[5]); // niveau max -> Ordonnée Max
    	num[5] = atoi(pargv[6]); // pas niveau -> Ordonnée Pas
    
    	return num;
    
    }
    Le soucis lorsque j’exécute c'est que dans les variables qui récupèrent les valeurs (min-ab, max_ab...), sont vides (leurs valeurs: "").

    Je ne comprend absolument pas pourquoi.
    Quelqu'un a une idée?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    int* Limites()
    {

    Form2 gForm2;
    ...
    gForm2 n'est pas affichée (Load, Show, ou je ne sais quoi) ?
    Du coup, les textboxes ne sont pas initialisés ...

    (... cela dit, moi c'est plutot C#, alors C++... )
    (... par ailleurs, créer une chaine pour la redécomposer ensuite, il y a peut être plus simple... )

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Par défaut
    Citation Envoyé par Alikendarfen Voir le message
    gForm2 n'est pas affichée (Load, Show, ou je ne sais quoi) ?
    Du coup, les textboxes ne sont pas initialisés ...
    Je suis pas sûre de comprendre ... Ma form2 est ouverte et les textbox ont été remplies pourtant


    (... par ailleurs, créer une chaine pour la redécomposer ensuite, il y a peut être plus simple... )
    Vous avez surement raison mais pour l'instant j'ai trouvé que cette solution, je ne me suis pas attardé dessus. Peut-être une fois mon programme fini je m'y pencherai à nouveau dessus.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 415
    Par défaut
    Je suis pas sûre de comprendre ... Ma form2 est ouverte et les textbox ont été remplies pourtant
    Peut être. Mais si c'est bien la 'gForm2' qui est déclarée dans la fonction 'Limites', ça veut dire qu'elle s'affiche et vous laisse le temps de saisir les paramètres dès sa déclaration (ça n'est pas habituel, sauf à ce que vous ayez défini des choses particulières dans son constructeur ?).

    Pour le voir, ça peut être simple : mettre un point d'arrêt sur la déclaration de gForm2, avancer d'un pas et voir si elle s'affiche à ce moment là et qu'elle est modale (un dialogue).
    Edit : Attention, dans cette situation, si elle n'est pas modale le code va se poursuivre sans interruption et du coup vous allez récupérer les valeurs des champs avant de les avoir saisis.

    Si c'est pas le cas, alors vous avez probablement une autre fenêtre de la même classe ouverte quelque part.

    Mais du coup, la fonction 'Limites' va chercher les valeurs dans gForm2 et non pas dans la fenêtre qui est ouverte à l'écran...

    Testez ça et dites nous !

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Par défaut
    Ah oui d'accord j'ai compris ^^

    Je vais essayer de tester ça dans la matinée !

    Merci.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 30
    Par défaut
    C'est exactement ce que vous m'avez dit. Enfaite j'instancie a nouveau ma form2.

    Mais du coup comment puis-je faire pour utiliser la form2 déjà initialisée?

Discussions similaires

  1. Tutoriel pour débuter rapidement avec les Windows.Forms ?
    Par Leelith dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/12/2008, 14h25
  2. Enregistrement avec deux windows form
    Par ApprentiDeveloppeur dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/09/2008, 13h46
  3. Manipuler des XML en c# avec un windows form
    Par Courgette17 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/05/2008, 18h37
  4. [c#][.NET][CF] TextBox avec plusieurs fonts et styles.
    Par safisoft13 dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 08/02/2007, 15h37
  5. [C#] Look and Feel Office 2003 avec les Windows Forms
    Par vandamme dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/01/2006, 00h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo