我正在使用「Microsoft Visual Studio 2010」和C#語言。我的用戶界面這個樣子的(用戶之前點擊Advance
按鈕): 按下按鈕自動展開窗口
如果用戶點擊Advance
按鈕,我希望它顯示窗口的其餘部分如圖片所示波紋管:
您能否告訴我如何隱藏所有這些信息,直到用戶點擊Advance
按鈕?我怎樣纔能有一個更小的窗口,如第一個圖所示。當用戶按下advance
按鈕時,它將展開並顯示剩下的內容。 如果你能告訴我細節,我會很感激
我正在使用「Microsoft Visual Studio 2010」和C#語言。我的用戶界面這個樣子的(用戶之前點擊Advance
按鈕): 按下按鈕自動展開窗口
如果用戶點擊Advance
按鈕,我希望它顯示窗口的其餘部分如圖片所示波紋管:
您能否告訴我如何隱藏所有這些信息,直到用戶點擊Advance
按鈕?我怎樣纔能有一個更小的窗口,如第一個圖所示。當用戶按下advance
按鈕時,它將展開並顯示剩下的內容。 如果你能告訴我細節,我會很感激
所有WinForms控件(包括窗體本身)都具有AutoSize
屬性。設置爲true
時,會導致控件自動調整其大小以適應其內容。因此,您應該將「高級」控件放到UserControl中,並將該UserControl添加到您的表單中(或者如果您懶惰,則可以使用Panel)。然後,單擊「高級」按鈕時,切換UserControl的可見性。表單應該相應地自動調整其大小。
或者,您可以將SplitContainer
添加到您的表單中,該表單可以摺疊其兩個面板之一。 「高級」按鈕然後將切換Panel2Collapsed
屬性的狀態以展開/摺疊底部面板。
注意:在語法上,該按鈕的標題應該是「高級」,而不是「高級」。爲了改善用戶體驗,我建議添加某種指標,以便按鈕擴展窗口上的可用信息,而不是提交或打開第二個窗口。大多數「擴展器」按鈕使用向下的箭頭來完成此操作,例如,
您可以使用此圖像,或者一個Unicode字形。例如,▼
,black down-pointing triangle。展開面板時將其更改爲向上的三角形。
非常感謝,AutoSize屬性解決了我的問題。我非常感謝你的幫助。 – 2013-04-24 05:37:30
閱讀此文的其他人:this.Size + = new Size(100,100);也工作。 this.Size + = new Size(width,height); – 2013-04-24 05:43:25
@Justin手動調整'Size'屬性時,不應該以像素爲單位對大小進行硬編碼。相反,您應該查詢面板的實際大小以隱藏或顯示。例如,'Form.Size + = Panel.Size'。這樣,當基於DPI或其他自動縮放生效時,您的代碼將正常工作。 – 2013-04-24 05:47:37
你的第一個表單的OnLoad事件會將每個控件或groupbox(無論你使用哪個)的可見性設置爲false。
並在事先buttonclick事件使其可見性是真實的。
代碼如下:
private void FirstForm_Load(object sender, EventArgs e)
{
controlName.Visible=false;
}
private void btnAdvance_Click(object sender, EventArgs e)
{
controlName.Visible=true;
}
MSDN對於visibility屬性:
http://msdn.microsoft.com/en-IN/library/system.windows.uielement.visibility.aspx
希望它有幫助。
首先將以下屬性設置爲可視的假 ,就像所有的lebels和文本框一樣。然後在高級按鈕的單擊事件中將所有屬性設置爲可見。
非常感謝您的回覆。它運作良好。但屏幕尺寸保持不變。你能告訴我,我怎麼能有一個更小的窗口,如第一個圖所示。並且當用戶按下「高級」按鈕時,它將展開並顯示其餘 – 2013-04-24 05:15:26
當高級按鈕的單擊事件觸發時增加窗口高度。 – 2013-04-24 05:20:19
你可以簡單地像這樣做,
1.增加一個面板到窗體底部並添加 你需要在高級按鈕,點擊可顯示所有控件。
2.change面板和表單以下兩個性質,在窗體加載事件
> AutoSize >> true
> AutoSizeMode >> GrowAndShrink
3.then你可以使用像下面
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible = false;
}
4.然後在高級按鈕點擊事件
private void button1_Click_1(object sender, EventArgs e)
{
panel1.Visible = true;
}
希望這會幫助你和任何其他需要今後......!
1.將一個面板添加到窗體的底部,並添加所有需要在高級按鈕單擊中顯示的控件。
2.change面板和表單以下兩個性質,在窗體加載事件
> AutoSize >> true
> AutoSizeMode >> GrowAndShrink
3.then你可以使用像下面
private void Form1_Load(object sender, EventArgs e)
{
panel1.Visible = false;
}
4.然後在高級按鈕點擊事件
private void button1_Click_1(object sender, EventArgs e)
{
//panel1.Visible = true;
string value1 = button1.Text;
switch(value1)
{
case "Expand":
panel1.Visible = true;
break;
case "Reduce":
panel1.Visible = false;
break;
}
button1.Text = "Reduce";
if(panel1.Visible==true)
{
button1.Text = "Reduce";
}
else if(panel1.Visible==false)
{
button1.Text = "Expand";
}
}
'panel.Visible = false' – leppie 2013-04-24 05:01:31