2012-09-06 71 views
0

我正在使用帶有標籤頁的選項卡控件來獲取用戶輸入。在最後一次獲獎之前,我必須顯示將要打印的用戶摘要。顯示基於用戶選擇的摘要

根據輸入可以有2組數據顯示。一次將被替換。

我是WinForm的新手,但在Asp.net中有一個控制面板,好心的我有一個控件,我可以使用這種顯示。

我以爲使用面板或組框,但我不知道如何管理那裏的位置和顯示。我嘗試將這些放在彼此上,並點擊試着將要求放在前面,使其可見並隱藏其他,但無法正常工作。任何意見請,這裏是我的代碼:

private void button1_Click(object sender, EventArgs e) 
    { 

     groupBox2.Visible = false; 
     groupBox1.BringToFront(); 


     groupBox1.Visible = true; 

    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     groupBox1.Visible = false; 
     groupBox2.BringToFront(); 

     groupBox2.Visible = true ; 
    } 

編輯 我已經注意到這個問題是,當我把對方頂一個兩個組框變成其他的一部分。如果我試圖通過面板來做到這一點,我也必須單獨管理所有控件。請指導。

回答

0

我終於用報表查看器顯示選擇,因爲以後我要打印repots以及

0

你可以這樣做。

創建兩個包含您需要的控件的UserControl並將一個GroupBox添加到您的Form中。不要將您的UserControls添加到您的窗體。

爲您的UserControls添加兩個實例變量給Form,並在FormLoad事件中初始化它們(例如,您可以使用設計器將一個控件添加到GroupBox中,將初始化代碼從InitializeComponent複製並粘貼到Form_Load,刪除控件,然後對其他控件執行相同操作)。小心避免將UserControls添加到GroupBox的Control集合中。

最後,當您知道要顯示什麼(或必須在可視化之間切換)時,只需清除GroupBox的Control集合並添加所需的UserControl即可。

以下代碼爲您提供了一個使用兩個標籤而不是真實UserControls的示例。

private System.Windows.Forms.Label label1; 
    private System.Windows.Forms.Label label2; 
    private bool sel1 = true; 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     // 
     this.label1 = new System.Windows.Forms.Label(); 
     this.label1.AutoSize = true; 
     this.label1.Location = new System.Drawing.Point(31, 44); 
     this.label1.Name = "label1"; 
     this.label1.Size = new System.Drawing.Size(27, 13); 
     this.label1.TabIndex = 0; 
     this.label1.Text = "One"; 
     this.label2 = new System.Windows.Forms.Label(); 
     this.label2.AutoSize = true; 
     this.label2.Location = new System.Drawing.Point(31, 44); 
     this.label2.Name = "label1"; 
     this.label2.Size = new System.Drawing.Size(27, 13); 
     this.label2.TabIndex = 0; 
     this.label2.Text = "Two"; 
     groupBox1.Controls.Add(label1); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     groupBox1.Controls.Clear(); 
     sel1 = !sel1; 
     if (sel1) 
      groupBox1.Controls.Add(label1); 
     else 
      groupBox1.Controls.Add(label2); 
    }