0

メニューとドックパネルを含むac#windowsアプリケーションがあります。メニューのいずれかの要素をクリックすると、ドックパネルにフォームが表示されます

検索テキストボックスを含むブックフォームがあります。

メニューには、他の用途のためにレイアウトを保存するために使用される名前(保存)の項目があり、開いたフォームは、レイアウトを保存した後もドックパネルでタブとして開きます。

注:ユーザーは同じフォームを数回開くことができます


必要なのは、ユーザーが保存リンクをクリックしたときに、ブックフォームから検索テキストボックスの値を取得し、メインフォームの変数に設定する必要があることです。


何か助けはありますか?

4

3 に答える 3

0

検索テキストボックスのプロパティのラッパーとして機能するパブリックプロパティを追加しTextます。

public string SearchString
{
    get {
        return searchTextbox.Text; // Where the searchTextbox is id of the textbox
    }
}

これは、フォームのインスタンスで参照できます。

于 2012-11-19T13:18:12.543 に答える
0

メインフォームに関数を追加して、変数の値を設定します。

private void My_method(string value)
    {        
        your_variable = value;              
    }

次に、BookFormを開いているときに、メインフォームをパラメーターとしてBookFormコンストラクターに次のように渡します。

Main_Form _fd;
public BookForm(Main_form fd)
    {
        InitializeComponent();
        _fd = fd;
    }

これで、このフォームのどこからでもMainform関数を呼び出すことができます:-

_fd.My_method(searchtextBox.text);

これで、ユーザーはフォームを何度も開いたり閉じたりする必要がなくなります。それがあなたを助けることを願っています!

于 2012-11-19T13:36:16.840 に答える
0
List<String> texts = new List<String>();
foreach(Form form in Application.OpenForms){
    if (form.Name == "bookForm"){
        TextBox textbox= form.Controls[<your textbox namr>] as TextBox;
        texts.Add(textbox);
    }
}

次に、このテキストリストをできるだけ使用できます

于 2012-11-20T06:23:41.670 に答える