2014-04-02 99 views
1

我們正在使用VB6 DataReport進行一些報告。我將某些RptTextBox控件的CanGrow屬性設置爲True,並且在RptTextBox控件之間使用了RptLine控件。Datareport文本框更改事件

我的問題是RptLine控件沒有CanGrow屬性,所以它不會與RptTextBox控件一起增長。如果在RptTextBox更改時觸發任何事件,則可以使用它獲取RptTextBox高度屬性,並將其分配給RptLine。

有什麼事情可以使用嗎?或者有沒有其他方法可以使RptLine控件具有與RptTextBox相同的高度?

編輯:

1)RptTextBox高度= RptShape高度

enter image description here

enter image description here

2)RptTextBox高度< RptShape高度

enter image description here

enter image description here

回答

0

不幸的是,沒有可用於使控件的每個實例彼此不同的事件。所以你能做到這一點的唯一方法就是利用控件的工作方式。

解決方法是爲要使用的解決方案創建一個重複的RptTextBox控件。我們只對控件的右手邊(或左手邊)感興趣。

確保上重複控制以下屬性設置:

  • 背景色:& H00FFFFFF &(這應該是一樣的背景)
  • BACKSTYLE:1 - rptBkOpaque
  • 的BorderColor:& H00000000 &(或您想使用的任何顏色)
  • BorderStyle:1 - rptBSSolid
  • 可以擴大:真
  • 數據字段:<一樣複製控制>
  • 前景色:& H00FFFFFF &(這應該是一樣的背景)

創建RptShape控制,並設置以下屬性:

  • 背景色:& H00FFFFFF &(這應該是一樣的背景)
  • BACKSTYLE:1 - rptBkOpaque
  • 邊框:0 - rptBSTransparent
  • 身高:<儘可能大>
  • 左:<相同重複的控制>
  • 寬度:<一樣控制你複製>

右鍵單擊形狀,然後選擇「置於前面」

本質上,重複控件將調整爲與原始字段相同的大小,因此其高度始終相同。 RptShape出現在這個控件的上方,前景和背景顏色都是白色的,所以它被用來清除RptTextBox控件的左邊,上邊和下邊界。如果您想要在文本左側留出一條線,則必須將形狀向右移動,直到看到左側。

Design View

Runtime View

+0

對不起,我沒有得到你在說什麼。並且RptShape控件沒有ForeColor屬性。在我的報告中,所有RptTextBox控件都沒有相同的寬度。雖然我嘗試了您的解決方法,但沒有得到預期的結果。 – shreeshaks

+0

它不可能設置RptShape高度儘可能大。我只能將高度設置爲初始RptTextBox高度,這將使得生長的RptTextBox的邊界線的某些部分保持不變。 – shreeshaks

+0

@shreeshanks - 是的,RptShape.ForeColor是一個錯誤。至於RptTextBox的寬度 - 如果您使用CanGrow,那麼寬度對於每條記錄都是不變的。你應該可以使用RptShape控件的Height屬性。將該值輸入到屬性框中,並且不會調整到最近的網格位置。 –