[英]Referencing UserControl's constituent TextBox from another form at design time vb.net
就在前面,我是用vb代碼而不是c#編寫的。
我已經檢查了建議的論壇主題,但沒有一個主題適用(我可以找到),所以就在這里。 我是vb.net的新手。 (來自vb6)
我正在創建一個用戶control_1
,其中包含文本框和一個按鈕。 Control_1
繼承自另一個用戶control_2
(一些文本框和日歷表單按鈕)。 當我按下按鈕時,它將啟動一個包含CalendarControl
的Calendar表單。
到目前為止工作正常。
現在,我需要將其Calendar窗體上的CalendarControl
值返回給未安裝的用戶control_1
。 我在這里說的是設計時間,用戶Control_1
尚未坐在表單上。
我不想從它的就座表單觸發日歷表單,因為我希望封裝此過程。
我將代碼編寫為基於表單的應用程序,以確保我的邏輯和應用程序正常工作。 現在,我正在嘗試將代碼和組成控件移入控件庫。
我嘗試從日歷表單中調用Usercontrol_1
,但它不顯示任何共享控件或屬性。 我已經在For Each循環中嘗試過Me.Parent.Controls
。 它找到了控件,但說我需要使用New關鍵字。 我嘗試了新方法,但沒有效果。 也許我誤解了智慧在說什么。
在此先感謝您的時間和幫助。
在設計時,您不能單擊打開另一個表單的按鈕。 因此,我真的不確定您在設計時想要達到的目標。
我不知道您使用的壓光機控件。 因此,我將解釋使用DateTimePicker
的可能解決方案。 在日歷表單上(我們將其fdlgCalender
添加一個屬性,該屬性允許公開訪問日歷控件的選定日期:
Public Property SelectedDate() As Date
Get
Return DateTimePicker1.Value
End Get
Set(ByVal value As Date)
DateTimePicker1.Value = value
End Set
End Property
在包含壓延按鈕的UserControl
,創建一個類似的屬性。 這次我們使用可為空的日期,以指示未選擇日期的情況
Public Property SelectedDate As Date?
現在,您可以像這樣調用日歷表單:
Dim fdlg As New fdlgCalender()
If SelectedDate.HasValue Then
fdlg.SelectedDate = SelectedDate.Value
Else
fdlg.SelectedDate = Today
End If
' Assuming that the dialog form sets the `DialogResult` correctly
If fdlg.ShowDialog() = DialogResult.OK Then
SelectedDate = fdlg.SelectedDate
Else
SelectedDate = Nothing
End If
現在,您可以通過SelectedDate
屬性從用戶控件外部訪問日期。
(該代碼未經測試)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.