1
TabPage newpage = new TabPage();
Tabs.TabPages.Add(newpage);
newpage.Controls.Add(this.tableLayoutPanel41);
newpage.Location = new System.Drawing.Point(4, 26);
newpage.Name = "AddMaintAgreement" + offset;
newpage.Size = new System.Drawing.Size(736, 523);
newpage.TabIndex = 10;
newpage.Text = "Add Maintenance Agreement";
newpage.UseVisualStyleBackColor = true;
offset++;

基本的に私が現時点で持っているものです。私の問題に影響を与える可能性があると思ったので、そこにオフセットを追加しました。

基本的に、このコードは「addmaintagreement」タブを 1 つ追加するだけで問題なく機能します。その後、最新のタブだけにコントロールがあります!

基本的に私は困惑しています。どんな助けでも大歓迎です。ありがとう。

4

3 に答える 3

2

短い例はここにとどまるべきだと思います:

        TextBox tmpLog = new TextBox(); // create new control of textbox type
        tmpLog.Text = "some text here";

        TabPage tb = new TabPage("my brand new tab"); //create tab
        tabControl.TabPages.Add(tb); // add tab to existed TabControl
        tb.Controls.Add(tmpLog); // add textBox to new tab

        tabControl.SelectedTab = tb;     // activate tab
于 2013-02-06T14:17:59.537 に答える
1

TabPage から派生させ、その派生クラスに必要なコントロールを追加します。次に、TabPage の代わりに派生クラスを使用します。

于 2009-04-06T00:45:31.907 に答える
0

コントロールは 1 つのコントロールにのみ親にすることができますがtableLayoutPanel41、すべてのTabPageインスタンスで親にしようとしているようです。タブのインスタンスごとにコントロールの新しいコピーを作成する必要があります。これを修正するにはさまざまな方法があります。

  1. タブ ページとそのコンテンツをプログラムで複数回作成します。
  2. コンテンツをTabPageユーザー コントロールとして実装し、タブ ページにドッキング フィルします。次に、必要な複製ページごとにそれらのいずれかを再作成します。
  3. タブページを実装する派生クラスを作成し、TabPage使用ごとにその新しいインスタンスを作成します。
于 2009-04-06T00:40:52.497 に答える