2014-02-25 78 views
1

我希望用戶能夠同時在窗體視圖中通過點擊按鈕來改變模板的高度:調整大小形式改變Detail.Height

Private Sub btnChangeHeight_Click() 

    booTall = Not booTall 

    If booTall Then 
     lngHeight = 12400 ' (twips) 
    Else 
     lngHeight = 1200 
    End If 

    Me.Detail.Height = lngHeight 
    Me.Repaint 

    Debug.Print Me.Detail.Height 

End Sub 

高度的變化 - Debug.Print說所以當booTallTrue時出現垂直滾動條。 但是窗體不會在屏幕上改變其垂直尺寸。

我也試過了,沒有成功(確保我的按鈕是在表頭):

Me.Detail.Visible = booTall 

的解決方案似乎取決於對錶單和表格詳細信息部分屬性:可調整自動高度,或許可以增長等,但我已經擺弄這些,沒有什麼作品。

我知道重疊控件和其他東西可以防止高度調整,所以我已經減少了窗體最小布局。我正在使用Access版本2007/2010。

一些附加信息:我實際上正在努力的是兩個子表單,上面的(A)和下面的(B),它們可以獨立地摺疊出視圖或展開。這是一個有很多數據的決策形式。我認爲如果我坍塌了(A)或(B)的高度,則DetailCanShrink屬性會導致整個表單維度發生變化。事實上,我想我幾年前使用Access 2003做了這個。至於使用Maximize ...,我們將這個表單設置爲可重用,可以打開多個實例。

+0

我不知道你想要做什麼是可能的或不可以。我通常在窗體的resize事件中設置大小信息。您是否有理由以這種方式控制細節部分的高度?爲什麼不只是允許最大化按鈕或自動填充屏幕?如果我有正確的,通常當你最大化時,表單頁眉和表單頁腳保持相同的大小,而細節部分放大。 – HK1

+0

謝謝HK1。關於目標的更多信息,請在末尾添加一段。 – Smandoli

+0

我不會嘗試使用細節高度設置來做到這一點。更好地控制子窗體控件的高度。 – HK1

回答

6

使用窗體的.Move方法來更改表格的大小「......而在表格視圖通過點擊按鈕改變表格的高度」。此示例切換我的表單的高度在4044和8000緹之間。

Private Sub btnChangeHeight_Click() 
    Dim lngHeight As Long 

    If Me.WindowHeight = 4044 Then 
     lngHeight = 8000 
    Else 
     lngHeight = 4044 
    End If 
    Me.Move Me.WindowLeft, Height:=lngHeight 
End Sub 
+0

你好Smandoli。我的印象是你有一個更大的目標,這是一塊。但是我在你的問題的後半部分迷失了。我的直覺告訴我,將這一部分轉移到一個新問題上可能會給我們提供另一個有趣而有用的Smandoli問題。乾杯。 – HansUp

+0

我認爲這個問題會是「我可以使用Can-Grow來讓我的表單跳舞嗎?」答案是否定的。你的建議意味着我可以(中途)去我想去的地方(多花點功夫) - 這對我很有用。至於我貶低我的問題的方式......是的,那往往不是生產力。 :-)感謝您的鼓勵。 – Smandoli

+0

我想我不久前在類似的道路上。我放棄了可以成長,但不確定是否絕對不能幫助,或者我無法通過我的挫敗看到答案。所以我對你可能想出的東西感到好奇。 :-) – HansUp

2

我也有過類似的問題,發現即使我躲在字段(控制),我不想看到詳細的高度不會收縮不夠。我發現如果我移動了我想隱藏的控件(因此設置.Visible和.Top屬性),那麼Detail.Height會減少到我想要的。這就好像即使隱藏的訪問拒絕忽略隱藏的控件

+0

謝謝。這增加了一些見解,並似乎原則上同意HansUp的答案。 – Smandoli