2009-05-25 3 views
0

J'essaie de trouver une façon simple de faire une boîte de texte égale toutes les lettres à gauche d'un " - "dans une autre zone de texte. Fondamentalement, si un utilisateur final tape blah-test dans textbox1, j'aimerais que textbox2 soit égal à blah. J'ai essayé si les déclarations et les sous-chaînes basées sur le nombre de positions de lettre (ie substring (0, 5), mais cela a été très long et peu pratique, puisque les mots saisis dans textbox1 peuvent être n'importe quelle longueurComment faire une zone de texte égale à toutes les lettres à gauche d'une lettre spécifique ou un caractère d'une autre zone de texte en C#

Merci,

DFM

Répondre

1

il est très simple

sélectionnez et cliquez deux fois sur l'événement OnTextChange sur textbox1

écrire ce code à l'intérieur textbox1_OnTextChange:

string text = textbox1.Text;
textbox2.text = text.Substring(0, text.indexOf("-"));

et vous avez terminé!

+0

Ce code lèvera une exception s'il n'y a pas de caractère '-' présent dans textbox1. –

+0

Merci - cela me mettra dans la bonne direction. Maintenant, je dois améliorer ce code pour que textbox3 obtienne toutes les lettres entre "-" et un autre "-", textbox4 obtiendra toutes les lettres entre le deuxième "-" et le troisième "-". Essentiellement, textbox1 pourrait avoir la chaîne "Test-Test1-Test2-Test3 etc ...". Textbox2 et plus contiennent chacun une partie de la chaîne de textbox1 (entre chaque "-"). Aussi, je mettrai un "si" pour ne pas gérer "-". Toute suggestion supplémentaire serait appréciée. Merci, DFM –

+1

Après avoir lu vos commentaires, il semble que vous ayez besoin de son String.Split. le tableau renvoyé par split aura les chaînes analysées pour chaque zone de texte que vous devez remplir. – Gishu

3

Essayez ceci:

if(textbox2.text.Contains("-")) 
{ 
    textbox1.text = textbox2.text.Split("-")[0]; 
} 

nous vérifions d'abord ici si TextBox2 contient le caractère - et si elle ne nous divisons le texte en deux parties et définir le texte de textbox1 à la partie qui est gauche du premier caractère

+0

Merci pour votre réponse - J'aurais dû inclure cela dans la question initiale, les utilisateurs finaux seront en mesure d'entrer une chaîne avec plusieurs "-"; par conséquent, la chaîne pourrait être test-test1-test2-test3 etc ... Elle correspond en fait à un répertoire de fichiers (c'est-à-dire C:/Test/Test1/Test2 etc ...). Maintenant que je vois comment faire un "-", je devrais pouvoir améliorer le code pour lire plus "-"; Cependant, vos suggestions supplémentaires sont bien appréciées. Merci, DFM –

Questions connexes