0

タブページでタブコントロールを使用して、ユーザー入力を取得しています。最後に、プライニングの前に、印刷されるユーザーの概要を表示する必要があります。

入力に基づいて、2セットのデータを表示できます。一度に1つずつ交換されます。

私は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 ;
    }

編集 私が問題に気付いたのは、両方のグループボックスを互いに重ねると、一方が他方の一部になるということです。パネルでこれを行おうとすると、すべてのコントロールを個別に管理する必要もあります。ご案内ください。

4

2 に答える 2

0

あなたはこのようにそれを行うことができます。

状況に応じて必要なコントロールを含む2つのUserControlを作成し、GroupBoxをフォームに追加します。UserControlsをフォームに追加しないでください。

UserControlsの2つのインスタンス変数をフォームに追加し、FormLoadイベントで初期化します(たとえば、デザイナーを使用してコントロールの1つをGroupBoxに追加し、初期化コードをInitializeComponentからForm_Loadにコピーして貼り付け、コントロールを削除して、次に、他のコントロールについても同じようにします)。GroupBoxのControlコレクションにUserControlsを追加しないように注意してください。

最後に、何を表示するかがわかったら(または視覚化を切り替える必要がある場合)、GroupBoxのControlコレクションをクリアして、必要なUserControlを追加するだけです。

次のコードは、実際のUserControlの代わりに2つのラベルを使用したサンプルを示しています。

    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);
    }
于 2012-09-06T07:52:46.240 に答える
0

後でレポも印刷する予定だったので、最終的にレポートビューアを使用して選択範囲を表示します

于 2012-09-10T23:33:02.820 に答える