J'essaye de multiplier les zones de texte déclarées sous form2 ici sous form3. sur form2 j'ai

public partial class Form2 : Form
{
    public static string SetvalueforTextBox1;
    public static string SetvalueforTextBox2;
}

Et aussi

public void TextBox1_TextChanged(object sender, EventArgs e)
{
    SetvalueforTextBox1 = TextBox1.Text;
    SetvalueforTextBox2 = TextBox2.Text;
}

Maintenant sur mon form3 je veux afficher la multiplication des valeurs saisies par l'utilisateur sur form2

private void label1_Click(object sender, EventArgs e)
{
    label1.Text = double.Parse(Form2.SetvalueforTextBox1) 
        * double.Parse(Form2.SetvalueforTextBox1).ToString();
}

Et j'obtiens l'erreur que "opérateur '*' ne peut pas être appliqué pour les opérandes de type 'double et' méthode '

Aidez-moi, s'il vous plaît

c#
-3
RC-AI 7 août 2017 à 11:09

2 réponses

Meilleure réponse

Votre problème est ici:

double.Parse(Form2.SetvalueforTextBox1).ToString()

Vous analysez d'abord la chaîne et dix à nouveau convertissez en chaîne. Supprimer .ToString()

Je pense que tu veux écrire:

label1.Text = (double.Parse(Form2.SetvalueforTextBox1) * double.Parse(Form2.SetvalueforTextBox1)).ToString();

Dans le premier cas, vous essayez de multiplier le double et la chaîne dans le second cas, vous convertissez le résultat de la multiplication en chaîne.

3
BWA 7 août 2017 à 08:13

Dans la ligne

label1.Text = double.Parse(Form2.SetvalueforTextBox1) * double.Parse(Form2.SetvalueforTextBox1).ToString();

Vous faites ce qui suit (décomposons-le):

  1. vous analysez un double de SetvalueforTextBox1
  2. vous analysez un double de SetvalueforTextBox1
  3. vous appelez ToString() sur votre résultat de 2.
  4. vous essayez de multiplier le résultat de la première analyse par la chaîne que vous avez obtenue de la deuxième partie

Cela vous donne l'erreur.

Ce que vous devez faire est d'encapsuler la multiplication et obtenir le résultat comme la chaîne, comme ceci:

label1.Text = (double.Parse(Form2.SetvalueforTextBox1) * double.Parse(Form2.SetvalueforTextBox1)).ToString();

De cette façon, le résultat de la multiplication sera renvoyé sous forme de chaîne et attribué.

1
Max Play 7 août 2017 à 08:15