Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: TabControlin uuteen tabiin sisällön lisäys

Sivun loppuun

Short Php [28.03.2008 19:41:03]

#

Eli tällä scriptillä

TabControl1.TabPages.Add("tabi" & subtv, "Sivu " & subtv)

voi lisätä tabin esim. buttonia painamalla. Ongelmaksi muodostui, miten tuonne lisätään sisältöä.

neau33 [30.03.2008 18:24:46]

#

Heippa taas Short Php!

tabControl-infoa...

'...
Partial Class MainForm
  Inherits System.Windows.Forms.Form
  Protected WithEvents chkBoxi As System.Windows.Forms.CheckBox
  Public Shared uusiTabi As Boolean
  '....
    Sub Button1Click(sender As Object, e As EventArgs)
      If Not uusiTabi Then
        tabControl1.TabPages.Add( _
        "tabPage" & CStr(tabControl1.TabPages.Count + 1), _
        "tabPage" & CStr(tabControl1.TabPages.Count + 1))
        chkBoxi = New CheckBox
        With chkBoxi
          .Name = "CheckBox1"
          .Text = "CheckBox1"
          .Location = New System.Drawing.Point(10, 10)
          .AutoSize = True
        End With
        tabPageManipulation(0)
      End If
    End Sub

    Private Sub chkBoxiClick( _
    sender As System.Object, e As System.EventArgs)
      messagebox.Show("jee!")
      tabPageManipulation(1)
    End Sub

    Sub tabPageManipulation(xcase as Integer)
      Dim tabi as TabPage
      For Each tabi In tabControl1.TabPages
        If tabi.Name = _
        "tabPage" & CStr(tabControl1.TabPages.Count) Then
          Select Case xcase
            Case 0
              'tässä voit määrittää luomallesi
              'tabPage'lle ominaisuuksia tyyliin:
              'tabi.Ominaisuus = Arvo
              tabi.Controls.Add(chkBoxi)
              AddHandler chkBoxi.Click, AddressOf chkBoxiClick
              uusiTabi = True: Exit Sub
            Case 1
              tabi.Controls.Remove(chkBoxi)
              RemoveHandler chkBoxi.Click, AddressOf chkBoxiClick
              tabControl1.TabPages.Remove(tabi)
              uusiTabi = False: Exit Sub
          End Select
        End If
      Next
    End Sub
'...
End Class

Short Php [30.03.2008 19:34:23]

#

Joo. Kokeilen tuota kuhan pääsen vb .net koneelle.

Short Php [31.03.2008 15:03:18]

#

Eli haluttais tietää, miten tuon sais lisäämään enemmän kun yhen tabin. Eli jos painaa 3 kertaa "Lisää tab", siihen tulis 3 tabia.

Edit: Haluttais myös tietää seuraavat: Oletetaan että teen webbrowseriin uuden tabin joka tekee myös uuden webbrowserin, no miten saisi sen haluaman internetosoitteen avautuvan juuri sinne tabiin ja webbrowseriin missä itse on.

neau33 [31.03.2008 16:10:30]

#

Hei halloo Short Php!

kun ja jos sinua alkaa kiinnostamaan ohjelmointi niin alat tutkimaan mistä koodissa on kysymys eli mitähän tapahtuisi jos vaikka lisään johokin jonkun pätkän tai jos otan jostain jonkun pätkän pois...ja sitten vaan miettimään syitä seurauksille...

Short Php [31.03.2008 18:49:38]

#

Jotenkuten osaan koodausta. Mutta ongelmana on arrayt sun muut jota en saa toimimaan. Kerro tämä vielä niin lupaan etten vähäänaikaan kysy mitään :S

Edit: Njää. Ehkä olet oikeessa. Ratkaisin tämän itse mutta.. Kiitos avusta silti :)

Edit2: Tuohon oikeaantabiinosoitteenavaus ongelmaan tarvitsisin vielä apua.

neau33 [01.04.2008 08:49:23]

#

No heippa taas Short Php!

viritelmä voisi näyttää vaikkapa tällaiselta...

Sub Button1Click(sender As Object, e As EventArgs)
  Static cnt As Integer
  If cnt < 3 Then
    tabControl1.TabPages.Add( _
    "tabPage" & CStr(tabControl1.TabPages.Count + 1), _
    "tabPage" & CStr(tabControl1.TabPages.Count + 1))
    browser = New WebBrowser
    With browser
      .Name = "tabPage" & _
      CStr(tabControl1.TabPages.Count) & "WebBrowser1"
      .Location = New System.Drawing.Point(10, 10)
      .AutoSize = True
    End With
    tabPageAddBrowser(cnt)
    cnt += 1
  End If
End Sub

Sub tabPageAddBrowser(cnt As Integer)

  Dim tabi As TabPage

  For Each tabi In tabControl1.TabPages
    If tabi.Name = "tabPage" & CStr(tabControl1.TabPages.Count) Then
      tabi.BackColor = Color.WhiteSmoke
      tabi.Controls.Add(browser)
      Dim br As WebBrowser
        For Each br In tabi.Controls
          If br.Name = "tabPage" & _
            CStr(tabControl1.TabPages.Count) & "WebBrowser1" Then
            br.Width = tabi.Width - 20
            br.Height = tabi.Height - 20
            Dim urlStr As String = ""
            Select Case cnt
              Case 0
                urlStr = "http://ohjelmointiputka.net"
              Case 1
                urlStr = "http://iltalehti.fi"
              Case 2
                urlStr = "http://mtv3.fi"
            End Select
            br.Url = New System.Uri(urlStr, System.UriKind.Absolute)
          End If
        Next
    End If
  Next
End Sub

neau33 [01.04.2008 09:54:08]

#

Sorry Short Php!

tämä jäi copy/paste-combinaation ulkopuolelle...

'...
  Inherits System.Windows.Forms.Form
  Protected WithEvents browser As System.Windows.Forms.WebBrowser
  '...

Short Php [01.04.2008 14:33:39]

#

Näiden avulla saan sen kuntoon. Kiitos paljon avusta. Nyt en toivottavasti häiritse näin paljon työtävaativien koodien kanssa.

Short Php [01.04.2008 14:39:39]

#

Näiden avulla saan sen kuntoon. Kiitos paljon avusta. Nyt en toivottavasti häiritse näin paljon työtävaativien koodien kanssa.

Edit: Tämä ei siltikään (ei millään pahalla) ratkaissut ongelmaa miten saisi avattua urlboxin tekstin urlin juuri sinne oikeaan tabiin.

neau33 [01.04.2008 21:23:51]

#

Heippa taas Short Php!

sinulla on niin hauska tapa ratkaista ongelmat, joten tässä lisää...

Sub MainFormLoad(sender As Object, e As EventArgs)

  Dim fileExists As String = Dir("C:\ikioma_selaushistoria")
  If fileExists <> "" Then
    Dim splitti() As String, i As Integer
    FileOpen(1, "C:\ikioma_selaushistoria", OpenMode.Input)
    splitti =  _
    Split(InputString(1, LOF(1)), Environment.NewLine)
    FileClose(1)
    If Not splitti(0) Is Nothing Then
      If splitti.GetUpperBound(0) > 0 Then
        Redim Preserve splitti(splitti.GetUpperBound(0) -1)
      End If
      For i = 0 To splitti.GetUpperBound(0)
        ComboBox1.Items.Add(splitti(i))
      Next i
    End If
  End If

End Sub

Sub ComboBox1SelectedIndexChanged( _
sender As Object, e As EventArgs)
  If ComboBox1.Text <> "" Then
    LataaSivu
  End If
End Sub

Sub ComboBox1KeyPress( _
sender As Object, e As KeyPressEventArgs)
  If asc(e.KeyChar) = 13 Then
    If ComboBox1.Text <> "" Then
      LataaSivu
    End If
   End If
End Sub

Sub LataaSivu()

  If Not ComboBox1.Text.Substring( _
  0, "http://".Length) = "http://" _
  And Not ComboBox1.Text.Substring( _
  0, "https://".Length) = "https://" _
  And Not ComboBox1.Text.Substring( _
  0, "ftp://".Length) = "ftp://"Then
    ComboBox1.Text =  "http://" + ComboBox1.Text
  End If

  webBrowser1.Url = New System.Uri( _
  ComboBox1.Text, System.UriKind.RelativeOrAbsolute)

  Do While webBrowser1.Document Is Nothing
    Application.DoEvents
  Loop

  If ComboBox1.Text.IndexOf( _
  webBrowser1.Document.Url.Authority) > -1 Then
    Dim item as Object = Nothing , exists As Boolean = False
    For Each item In ComboBox1.Items
      If item.ToString = ComboBox1.Text  Then
        exists = True: Exit For
      End If
    Next
    If Not exists Then
      ComboBox1.Items.Add(ComboBox1.Text)
    End If
  Else
    MessageBox.Show("annettu URL-osoite on syvältä...")
  End If

End Sub

Sub MainFormFormClosing( _
sender As Object, e As FormClosingEventArgs)

  Dim Item As Object
  FileOpen(1, "C:\ikioma_selaushistoria", OpenMode.Output)
  For Each item In ComboBox1.Items
    If item.ToString.Trim <> "" Then
      Print(1, item.ToString & Environment.NewLine)
    End If
  Next
  FileClose(1)
  Me.Dispose(disposing)

End Sub

Sub MainFormFormClosed( _
sender As Object, e As FormClosedEventArgs)
  End
End Sub

Sivun alkuun

Vastaus

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

Tietoa sivustosta