Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: [vb2008] ongelma tabcontrolien kanssa

jokke568 [13.10.2009 21:03:35]

#

Hei

En ole varmo onko ongelma nimenomaan tabcontrolleissa, mutta en keksinyt muuta otsikkoa kun en tiedä missä vika....

Eli supistettuna: ohjelmassani on MenuStripe, jossa kaksi vaihtoehtoa TAB1 ja TAB2.
Ohjelman käynnistyessä esillä on TabControlli nimeltään tab1, jossa kolem välilehteä. Kun valitsen MenuStripestä TAB2, muuttuu TAB1 pieneksi, näkymättömäksi ja siirtyy sivuun. Tämän jälkeen tabcontrolli TAB2, muuttu näkyväksi ja sijainti siirtyy (0,0) kohtaan ja tulee näkyväksi. Eli TAB1 tai TAB2 saadaan esille....

Ongelma on nyt se, että kun olet TAB2:s, jollain välilehdellä niin noin 2minuutin kuluttua TAB2 menee piiloon ja TAB1 tulee esille, ensimmäinen välilehti valittuna.

Ohjelmassa on myös ajastimia, mutta niiden interval ei ole 120:ntä ja olen kokeillut ilman ajstimia, mutta sama TAB1 esiin tulo toistuu.

Tämä TAB1 esiin tulo tapahtuu melko tarkasti 2 minuutin välein riippumatta siitä teen ohjelmalla jotain vai odotanko tekemättä mitään. Jos olen TAB1:sen välilehdellä 2 tai 3 niin sama tapahtuma 2 minuutin kuluttua laittaa ensimmäisen (0) välilehden esille.

Ei pysty ymmärtää mistä on kyse ja en keksi mistä ongelmaa alkaisin selvittämään....

Onko kenelläkään ollut vastaavanlaisia ongelmia TabControllien kanssa tai ohjelman "omatoimisuuden" kanssa..

Jokke

neau33 [14.10.2009 06:32:17]

#

Moikka taas jokke568!

kokeile oheisen mallin mukaista viritelmää...

Public Partial Class MainForm

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub MainFormLoad(sender As Object, e As EventArgs)

      Me.tabControl2.Enabled = True
      Me.tabControl1.Enabled = False
      SelectTab

   End Sub

   Sub TAB1ToolStripMenuItemClick( _
   sender As Object, e As EventArgs)

      If Not Me.tabControl1.Enabled Then
         SelectTab
      End If

   End Sub

   Sub TAB2ToolStripMenuItemClick( _
   sender As Object, e As EventArgs)

      If Not Me.tabControl2.Enabled
         SelectTab
      End If

   End Sub

   Sub SelectTab()

      For Each ctl As Control In Me.Controls
         If TypeOf(ctl) Is TabControl Then
            ctl.Enabled = Not ctl.Enabled
            If ctl.Enabled Then
               ctl.Left = 0
            Else
               ctl.Left = 0 - ctl.Width
            End If
            ctl.Top = Me.menuStrip1.Height + 1
         End If
      Next

   End Sub

End Class

jokke568 [14.10.2009 21:05:34]

#

Hei Nea

Suuri kiitos taas, että olet käyttänyt aikaasi ongelmieni ratkomiseksi.

Rupean tutkimaan koodipätkäsi ratkaisua ongelman ratkaisemiseksi.

Olen kokeillut tab1 ja tab2 toimintoa pelkistetyssä ohjelmassa jossa vain tabin näkyviin vaihto samalla tyylillä kuin ongelma ohjelmassa. Kokeilussani tab1 ei pongahda esiin parin minuutin jälkeen, joten ongelma lienee jossain muussa.

Edelliseen viestiin jäi mainitsematta, että kun tab1 tulee väkisin esille ja välilehti 0 on näkyvillä. Sama ongelma on jos, olen tab1:n jollain muulla välilehdellä niin 2 minsan jälkeen välilehti 0 tulee esille. Välilehdelle jää myös tekstiä/merkkejä "haamuna" välilehden taustalle, välilehdellä on listbox, jonka päälle ei jää mitään tekstiä edellisestä tab-välilehdestä....

Koodista kysyisin vielä yhden hölmön asian... Mitä tekee toiminto InitializeComponent...?

jokke568 [15.10.2009 18:12:19]

#

Hei

Ongelma ratkesi.
Lisäsin uuden tabcontrollin ja siirsi näppäimet yms uudelle tabille, poistin vanhan tabin ja nyt toimii.

Ihme juttu...

Jokke

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta