簡體   English   中英

在設計時從vb.net的另一種形式引用UserControl的組成TextBox

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM