2010-02-28 6 views
1

J'ai deux formulaires, l'un contenant une riche zone de texte et l'autre servant à trouver du texte dans cette section.Comment trouver du texte dans une zone richtext sur un autre formulaire C#

Sur ce formulaire Find est une zone de texte et 2 boutons « Rechercher » et « FindNext »

Je ne sais pas comment relier les 2 formes ensemble pour trouver le texte et aussi comment trouver le texte

: -S

Toute aide s'il vous plaît ??

+0

Vous pouvez vous référer à ceci: http://stackoverflow.com/questions/8566/best-way-to-access-a-control-on-another-form-in-c –

+0

Il pourrait être utile si vous clarifiez les relations des deux formulaires: le formulaire avec RichTextBox crée-t-il le formulaire de recherche ou est-il créé d'une autre manière? Le formulaire de recherche est-il un formulaire enfant du formulaire avec RichTextBox? Est-ce que vous montrez le formulaire de recherche de façon modale? En outre, savez-vous comment définir et déclencher des événements personnalisés? – BillW

+0

um le formulaire avec le richtextbox a un bouton "Rechercher". Si cela est cliqué, il ouvre le formulaire de recherche. Je ne sais pas quoi d'autre votre demande. Im très nouveau à la programmation: -S – Christina

Répondre

1

Pour chacun de vos formulaires, vous pouvez ajouter une propriété qui fera référence à l'autre formulaire. Cela vous donnera accès à l'autre formulaire et à tous les contrôles à travers la propriété.

public property Form RTForm { get; set;} 

Vous pouvez ensuite définir cette propriété à l'endroit où vous construisez les formulaires.

Form myForm = new Form(); 
Form rtForm = new RTForm(); 
myForm.RTForm = rtForm(); 
+0

Elle devra aussi faire la riche boîte de texte qu'elle essaie de se référer au public; changez la déclaration comme protected Syste.Windows.Forms.RichTextBox RTB; à public Syste.Windows.Forms.RichTextBox RTB; –

+0

@Steve Votre suggestion nécessiterait une modification du fichier Designer.cs pour le formulaire, ce qui n'est pas une bonne chose à faire pour plusieurs raisons: si vous examinez un fichier WinForm Designer.cs typique, vous verrez que les déclarations de TextBoxes et d'autres les contrôles utilisent le 'modificateur privé, non' protégé. Cependant, si l'OP crée le RichTextBox au moment de l'exécution et l'insère dans un autre formulaire, ce serait une histoire différente: mais, dans ce cas, nous pouvons être presque sûrs de ne pas le faire. – BillW

+1

@BillW - changer le modificateur d'accès est exactement ce que le concepteur fera lui-même si vous affichez le formulaire dans le concepteur et que vous modifiez la propriété 'Modifier' de la boîte en public. C'est une chose parfaite à faire. –

1

Il existe plusieurs façons. Vous pouvez simplement définir une propriété dans le formulaire qui contient la zone richtext, qui peut être trouvée par votre autre formulaire.

public static string RTextboxText 
{ 
    get 
    { 
     return myrichtextbox.Text; 
    } 
    set 
    { 
     myrichtextbox.Text = value; 
    } 
} 

Setter peut être supprimé de c.

Une autre méthode consiste à utiliser une classe entre les deux formulaires. Je pense que vous utilisez également des actions spécifiques sur le texte? Vous pourriez vouloir mettre tout votre code à ce sujet, dans cette classe aussi.