除非单击,否则不会加载选项卡控件的内容

时间:2014-08-04 19:56:02

标签: vb.net winforms tabs controls

我有一个包含8个标签的VB应用程序。

此应用程序编辑/添加内容并打印报告。第一个标签是默认的。

但是,我对大多数需要通过报表作为参数传递的选项卡有一些约束,所以如果我在点击选项卡之前运行报表,它就不会获得该值。我试图得到的这些控件只是Checkboxes,运行报告发送所有False,我知道有检查的。我不确定如何获得正确的值而无需单击选项卡本身。

以下代码全部用于我的主要表单..

    Public Sub New(ByVal session As UserSession, ByRef caller As Form)
    InitializeComponent()
    thisSession = session

    IncidentControl1.FormSession = session
    PersonsControl1.FormSession = session
    VictimControl1.FormSession = session
    VehicleControl1.FormSession = session
    UseOfForceControl1.FormSession = session
    NarrativeControl1.FormSession = session

    callingForm = caller
    blnHome = True
End Sub

Private Sub UseofForceFormv1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Try
        InitializeDataStructures()

        LoadReport()
        CreateDataRelations()
        SetUpTabControls()
        SetupDataBindings()
        SetStatusLabels()
        addHandlers()
        thisSession.sigAdmin

        TabControl1.SelectTab(1) ' these 2 lines fixed my issue
        TabControl1.SelectTab(0)

End Sub

Private Sub SetUpTabControls()
    LocationTab1.SetupTab(subLocationDT, thisSession, thisSession.reportID, dsMain)
    ActorTabv11.SetupTab(dsMain, thisSession)
End Sub

这是我主要表单中的标签..

Public Sub SetupTab(ByRef formDataSet As DataSet, ByVal session As UserSession)
    incidentReportDS = formDataSet
    thisSession = session

    thisSession = session
    'incidentReportDS = incidentReportDS
    dataUtil = New DAL.DataUtil

    bcActor = BindingContext(vwActor)


    vwIncidentArrest = Actors(0).IncidentArrest()


    SetupFieldAvailableValues()

    SetUpDataBindings()

    AddEventHandlers()
    bcActor_PositionChanged(Me, EventArgs.Empty)

End Sub

编辑: 我在主窗体加载结束时添加了 TabControl1.SelectTab()方法来选择我想要的选项卡,然后选择第一个选项卡,导致它们全部加载。

1 个答案:

答案 0 :(得分:4)

这种行为(问题)是可以预期的。引用MSDN:

  

“在显示标签页之前,不会创建TabPage中包含的控件,并且在显示标签页之前不会激活这些控件中的任何数据绑定。”

<强>解决方案

要解决此问题:"make each tab page active before making the form visible."