none
調整tabpages裡form大小 RRS feed

  • 問題

  • 大大您們好,請問一下,我在tabpage裡面加入panel,panel裡加入Form(此Form裡也有自己的控制項),但當panel加入Form後,Form的大小會變得比panel大(非我預先設定Form的大小),經果網路搜尋http://www.eggheadcafe.com/community/aspnet/2/10215531/adjust-the-winform-width-to-the-tabpage-width.aspx,此大大的方法,我有試過,也是可行,但問題是這樣的方法仍造成我Form裡的控制項大小改變(就是Form裡的控制項都變大了),大大是否可以給我幫助,是甚麼原因造成這樣的結果,謝謝。
    testpage WhichForm = new WhichForm();
    WhichForm.TopLevel = false;
    WhichForm.FormBorderStyle = FormBorderStyle.None;
    WhichForm.Location = new Point(0, 0);
    panel2.Controls.Add(WhichForm);     //ADD後,FORM變大了              
    WhichForm.Visible = true;

    2010年11月26日 上午 03:34

解答

  • DEAR
    控制項會跟著變大可能有設定了Dock ,Anchor,檢查所有的控制項的這兩個屬性,往這方面去除錯,
    控制項預設Anchor值是
    Control.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left))));
    預設Anchor值是
    Control.Dock = System.Windows.Forms.DockStyle.None;

    我怎麼加控制項都不會自己變大
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 05:44
  • 您好

    試著將您的 Form 設定成初始表單,讓 Form 直接 Show 出來,然後用滑鼠拖拉此 Form 的大小,看看控制項是否會改變大小


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 06:31
    版主
  • Hi~

    我也很讚同 小歐大說的做法...
    剛才我也實作了一次,也沒有碰到你的那個問題....

    我在你有 tabpage 的那個 winform 中程式碼如下

           Form2 f2 = new Form2();
                f2.TopLevel = false;
                f2.FormBorderStyle = FormBorderStyle.None;
                f2.Location = new Point(0,0);
                panel1.Controls.Add(f2);
                f2.Visible = true;

    是不是跟你的也一樣? ( 一樣吧!!!)

    而我的 f2 也是一般新增....然後有加個 Button (模擬如你說 WhichForm 中的內的物件 )
    最後的結果.....一切正常。

    所以,

    1. 是否能請您先看一下你所說的 WhichForm 表單,先看看它內的物件是否改變大小?

    2. 你的程式碼中 testpage WhichForm = new WhichForm(); 這句......
        我想請問的是  testpage 與 WhichForm 的關連性......? 繼承還是????
        如果可以可否看一下 testpage.....

     


     

     


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 06:50

所有回覆

  • Hi!

    確認一下您 Form 內的控制項,是否有設定以下屬性,有的話請試著變更屬性設定看看

    Control.Dock 屬性 : 取得或設定停駐在其父控制項的控制項框線,並決定控制項隨其父代重新調整大小的方式。

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.dock(VS.90).aspx

    Control.Anchor 屬性 : 取得或設定控制項繫結至的容器邊緣,並決定控制項隨其父代重新調整大小的方式。

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.anchor(v=VS.90).aspx



    歡迎參觀我的Blog.NET菜鳥自救會
    2010年11月26日 上午 04:33
    版主
  • 大大您好,這些動作我都沒設,都是c#預設的,謝謝
    2010年11月26日 上午 04:43
  • DEAR
    控制項會跟著變大可能有設定了Dock ,Anchor,檢查所有的控制項的這兩個屬性,往這方面去除錯,
    控制項預設Anchor值是
    Control.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left))));
    預設Anchor值是
    Control.Dock = System.Windows.Forms.DockStyle.None;

    我怎麼加控制項都不會自己變大
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 05:44
  • 大大您好,我有找過您們說的問題,但我看真的沒有捏,上面有提到一個網站,我根據他的方式,可以讓我的form回復成原來的大小,但我發現即使form回復了,控制項卻沒有回復成原來大小,如果是因為這些屬性的關係,照道理說,控制項也應回復才對,不是嗎,謝謝,是否還有可能有其他原因嗎,謝謝
    2010年11月26日 上午 06:08
  • 您好

    試著將您的 Form 設定成初始表單,讓 Form 直接 Show 出來,然後用滑鼠拖拉此 Form 的大小,看看控制項是否會改變大小


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 06:31
    版主
  • Hi~

    我也很讚同 小歐大說的做法...
    剛才我也實作了一次,也沒有碰到你的那個問題....

    我在你有 tabpage 的那個 winform 中程式碼如下

           Form2 f2 = new Form2();
                f2.TopLevel = false;
                f2.FormBorderStyle = FormBorderStyle.None;
                f2.Location = new Point(0,0);
                panel1.Controls.Add(f2);
                f2.Visible = true;

    是不是跟你的也一樣? ( 一樣吧!!!)

    而我的 f2 也是一般新增....然後有加個 Button (模擬如你說 WhichForm 中的內的物件 )
    最後的結果.....一切正常。

    所以,

    1. 是否能請您先看一下你所說的 WhichForm 表單,先看看它內的物件是否改變大小?

    2. 你的程式碼中 testpage WhichForm = new WhichForm(); 這句......
        我想請問的是  testpage 與 WhichForm 的關連性......? 繼承還是????
        如果可以可否看一下 testpage.....

     


     

     


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    • 已標示為解答 冰糖旋風 2010年11月29日 上午 01:03
    2010年11月26日 上午 06:50
  • 大大謝謝您們的幫助,我初始一個form也沒這個問題,看來我需要自己去找找問題所在,很感謝您們花時間幫我,謝謝
    至於Nobel12大大所提的第二個是我筆誤testpage WhichForm = new testpage();很抱歉造成您的困惱,testpage只是一個裡面有一個按鈕的form而已,謝謝
    2010年11月29日 上午 01:02