C #: Comment détecter quelle valeur saisie est égale ou le plus proche de zéro d'un groupe de valeurs / zones de texte?

StackOverflow https://stackoverflow.com/questions/3623066

  •  26-09-2019
  •  | 
  •  

Question

J'ai un Excel formule que j'utilise mais je veux distribuer quelque chose d'un peu plus substantiel et durable et aussi facile à utiliser à mon groupe de designers au travail. Je suis également jongler avec les chiffres de négatifs, malheureusement, si la valeur en cours minimum ne marcherait pas.

Donc, si textbox1 dit 13, TextBox2 dit 4 et TextBox3 dit -1, zone de texte 3 allumait ou toute action que j'ai choisi d'être Pratiqué depuis -1 est le plus proche de zéro.

Non pas que cela aide vraiment, mais la formule Excel va comme ceci: = INDEX (A61: A78, MATCH (MIN (INDEX (ABS (A61: A78), 0,1)), INDEX (ABS (A61: A78 ), 0,1), 0))

Merci pour toute aide!

Était-ce utile?

La solution

Voici une méthode "fun avec LINQ"

Func<string, bool> isDecimal = s => { decimal temp; return decimal.TryParse(s, out temp);};
TextBox closestToZero =
    (from tb in this.Controls.OfType<TextBox>()
        where isDecimal(tb.Text)
        orderby Math.Abs(decimal.Parse(tb.Text))
        select tb)
        .FirstOrDefault();

if (closestToZero != null)
    MessageBox.Show(closestToZero.Text);

Autres conseils

itérer sur les zones de texte, calculer la valeur absolue de chaque numéro dans chaque case, et garder une trace du nombre le plus bas vu, ainsi que l'indice de la zone de texte, il a été vu dans. Essayez de regarder en Math.Abs() pour valeur absolue.

Vous pouvez simplement parcourir les champs de saisie, le stockage de la valeur minimale trouvée à ce jour et son associé textbox que vous allez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top