2014-10-09 60 views
1

我很抱歉,如果這似乎令人難以置信的明顯或非常常見的問題,但我一直在尋找,現在找過帖子了一會兒,我仍似乎無法得到它。控制豐富的文本框控件是表格1從表格2

我剛剛進入學習C#,我給自己定下了一個小項目,使周圍的RichTextBox控制字處理器與一些額外的功能。

我目前只是添加了'查找&替換'文本的功能,並且下面的代碼在與富文本框控件使用相同的窗體時工作。

richTextBox1.Rtf = richTextBox1.Rtf.Replace("bob", "bill"); 

我不想使用對話框或類似的東西,我來直接從我們的老朋友VB6的,所以我不知道他們是否還存在,即使這樣,所以我m做一個外部窗體,其行爲有點像一個對話框,我希望用戶能夠輸入文本來查找和替換,然後按下OK,然後發送回主窗體,聽起來很簡單吧大概是,我不知道我錯過了什麼?

private void findReplaceToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    Form3 AboutBox = new Form3(); 
    AboutBox.ShowDialog(); 
} 

我已經盡我所能,在實施了幾個我看過在這裏的答案,在其中的一個我管理能夠控制form1,但只有當我在代碼之後用form1.show();打開了它的一個新實例,這在我試圖實現的東西中是沒用的。

我已經設置了richTextBox1.Modifiers公共,但我仍然抓我的頭在這一個。

+1

這個問題有點大,所以正確答案也取決於您希望您的搜索形式與推出的搜索對話框父窗體進行交互。如果你只是想提示用戶輸入一個字符串來代替,那麼像Grant這樣簡單的答案就足夠了。但是,如果您希望打開搜索對話框,並在用戶從找到的術語到術語進行導航時將其保持打開狀態,那麼您在工作之前有更多的工作。如果你真的不熟悉程序設計,那麼你的工作可能會涵蓋5-10個具體問題。 – RLH 2014-10-09 18:46:36

回答

1

代替把RichTextBox的市民,我會一個屬性添加到從控制返回文本,這樣其他形式:

public class SearchForm : Form 
{ 
    public string SearchTerm 
    { 
     get { return richTextBox1.Text; } 
    } 

    ... 

當用戶關閉了「搜索」的形式,你可以通過查詢屬性獲取搜索詞:

private void findReplaceToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    string searchTerm; 

    using (var searchForm = new SearchForm()) // used 'using' to dispose the form 
    { 
     searchForm.ShowDialog(); 

     searchTerm = searchForm.SearchTerm; 
    } 

    // do something with searchTerm 
} 

您會發現這使得維護更易於管理。以一種形式更改控件的名稱不應要求您在使用它們的任何其他形式中進行更改。