Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SSTab, New Tab, New Control

27K
19 июля 2007 года
elvira
10 / / 16.07.2007
Помогите пожалуйста справиться с ситуацией.
вот кусок кода: VB 6
 
Код:
SSTab1(0).Tabs = i
                    SSTab1(0).TabsPerRow = i
                    SSTab1(0).Tab = i - 1
                    SSTab1(0).Caption = "New Tab" & i-1
                    AddMyTabControl (n)
                    n = n + 1

Код:
Private Sub AddMyTabControl (nIndex As Integer)
  Dim txt As TextBox

    Set txt = Me.Controls.Add("VB.TextBox", "TextBox" & nIndex, SSTab1(0))

   txt.Height = 1455
   txt.Top = 2150
   txt.Left = 240
   txt.Width = 3375
   txt.Text = "New textbox"
   txt.Visible = True

End Sub


а проблема вот какая:
новую закладку создаю, а вот на той самой новой закладе на могу построить новый контроль[COLOR="Blue"] (TextBox).[/COLOR]
вместо этого контроль [COLOR="blue"](TextBox)[/COLOR]рисуется на первой закладке
не могу понять в чем проблема
29K
19 июля 2007 года
NanoBits
18 / / 18.07.2007
Цитата:

SSTab1(0).Tabs = i
SSTab1(0).TabsPerRow = i
SSTab1(0).Tab = i - 1
SSTab1(0).Caption = "New Tab" & i-1
AddMyTabControl
n = n + 1


AddMyTabControl or AddMyTabControl(i) or AddMyTabControl(n) ?

Цитата:

Set txt = Me.Controls.Add("VB.TextBox", "TextBox" & nIndex, SSTab1(0))


SSTab1(0) or SSTab1(nIndex) ?

27K
19 июля 2007 года
elvira
10 / / 16.07.2007
Цитата: NanoBits
AddMyTabControl or AddMyTabControl(i) or AddMyTabControl(n) ?

SSTab1(0) or SSTab1(nIndex) ?





вот здесь я добавляю новую закладку (Tab)

 
Код:
SSTab1(0).Tabs = i   ' вот он новый Tab
          SSTab1(0).TabsPerRow = i
          SSTab1(0).Tab = i - 1   'здесь я его посылаю на новую закладку
          SSTab1(0).Caption = "New Tab" & i-1
          AddMyTabControl (n)  'здесь он идет строить новый TextBox с индексом n
          n = n + 1

а вот сдесь новый контроль
Код:
Private Sub AddMyTabControl (nIndex As Integer)
  Dim txt As TextBox

    Set txt = Me.Controls.Add("VB.TextBox", "TextBox" & nIndex, SSTab1(0))

   txt.Height = 1455
   txt.Top = 2150
   txt.Left = 240
   txt.Width = 3375
   txt.Text = "New textbox"
   txt.Visible = True

End Sub
29K
19 июля 2007 года
NanoBits
18 / / 18.07.2007
Цитата:
Set txt = Me.Controls.Add("VB.TextBox", "TextBox" & nIndex, SSTab1(0))


Если я не ошибаюсь здесь проблема в SSTab1(0)
так как parent у всех TextBox одно и то же
трудно сказать не посмотрев на SSTab control source

313
20 июля 2007 года
insane88
440 / / 13.12.2006
Текстовое поле по-любому будет именно на первой вкладке, т.к. TabStrip не может группировать контролы (как Form или Frame), поэтому, чтобы текстовое поле появлялось на нужной вкладке, пропиши примерно такой код:

 
Код:
... Sub TabStrip_Click()
If TabStrip.SelectedItem.Index=<значение> Then ...
End Sub
27K
22 июля 2007 года
elvira
10 / / 16.07.2007
Вот на что я обратила внимания:
если закладка(...,4,5) создана в Designer, то наложить на нее новые контроли нет ни каких проблем.
если же создание закладки происходит в коде, то ни смотря на то что, в Debuger можно отследить и увидеть что, закладка новая создана, все равно рисуется контроль на первой.

и еще,
сделала эксперимент.
создала закладки в коде, а потом с помощью события Click нарисовала нужный мне контроль
Опять же рисует без проблем
27K
22 июля 2007 года
elvira
10 / / 16.07.2007
[QUOTE=NanoBits]Если я не ошибаюсь здесь проблема в SSTab1(0)
трудно сказать не посмотрев на SSTab control source[/QUOTE]

vot properties

cm Pic

а вот еше кусок из Desing, может так будет понятнее:
Код:
VERSION 5.00
Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
Begin VB.Form frmVfrl_n
   Caption         =   "Form2"
   ClientHeight    =   4545
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   7710
   LinkTopic       =   "Form2"
   ScaleHeight     =   4545
   ScaleWidth      =   7710
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton btnExit
      Caption         =   "EXIT"
      BeginProperty Font
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   177
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2040
      TabIndex        =   1
      Top             =   4080
      Width           =   3615
   End
   Begin TabDlg.SSTab SSTab1
      Height          =   3855
      Index           =   0
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   7500
      _ExtentX        =   13229
      _ExtentY        =   6800
      _Version        =   393216
      Style           =   1
      Tabs            =   2
      TabsPerRow      =   11
      TabHeight       =   520
      TabCaption(0)   =   "Tab 0"
      TabPicture(0)   =   "frmVfrl_n.frx":0000
      Tab(0).ControlEnabled=   -1  'True
      Tab(0).Control(0)=   "lblPT(0)"
      Tab(0).Control(0).Enabled=   0   'False
      Tab(0).Control(1)=   "lblPT(1)"
      Tab(0).Control(1).Enabled=   0   'False
      Tab(0).Control(2)=   "lblPT(2)"
      Tab(0).Control(2).Enabled=   0   'False
      Tab(0).Control(3)=   "lblPT(3)"
      Tab(0).Control(3).Enabled=   0   'False
      Tab(0).Control(4)=   "lblTitle(0)"
      Tab(0).Control(4).Enabled=   0   'False
      Tab(0).Control(5)=   "lblTitle(1)"
      Tab(0).Control(5).Enabled=   0   'False
      Tab(0).Control(6)=   "lblTitle(2)"
      Tab(0).Control(6).Enabled=   0   'False
      Tab(0).Control(7)=   "lblTitle(3)"
      Tab(0).Control(7).Enabled=   0   'False
      Tab(0).Control(8)=   "lblTitle(4)"
      Tab(0).Control(8).Enabled=   0   'False
      Tab(0).Control(9)=   "lblTitle(5)"
      Tab(0).Control(9).Enabled=   0   'False
      Tab(0).Control(10)=   "txtPT(0)"
      Tab(0).Control(10).Enabled=   0   'False
      Tab(0).Control(11)=   "txtPT(1)"
      Tab(0).Control(11).Enabled=   0   'False
      Tab(0).ControlCount=   12
      TabCaption(1)   =   "Tab 1"
      TabPicture(1)   =   "frmVfrl_n.frx":001C
      Tab(1).ControlEnabled=   0   'False
      Tab(1).Control(0)=   "lblPT(4)"
      Tab(1).Control(0).Enabled=   0   'False
      Tab(1).Control(1)=   "lblPT(5)"
      Tab(1).Control(1).Enabled=   0   'False
      Tab(1).Control(2)=   "lblPT(6)"
      Tab(1).Control(2).Enabled=   0   'False
      Tab(1).Control(3)=   "lblPT(7)"
      Tab(1).Control(3).Enabled=   0   'False
      Tab(1).Control(4)=   "lblTitle(6)"
      Tab(1).Control(4).Enabled=   0   'False
      Tab(1).Control(5)=   "lblTitle(7)"
      Tab(1).Control(5).Enabled=   0   'False
      Tab(1).Control(6)=   "lblTitle(8)"
      Tab(1).Control(6).Enabled=   0   'False
      Tab(1).Control(7)=   "lblTitle(9)"
      Tab(1).Control(7).Enabled=   0   'False
      Tab(1).Control(8)=   "lblTitle(10)"
      Tab(1).Control(8).Enabled=   0   'False
      Tab(1).Control(9)=   "lblTitle(11)"
      Tab(1).Control(9).Enabled=   0   'False
      Tab(1).Control(10)=   "txtPT(2)"
      Tab(1).Control(10).Enabled=   0   'False
      Tab(1).Control(11)=   "txtPT(3)"
      Tab(1).Control(11).Enabled=   0   'False
      Tab(1).ControlCount=   12
 Begin VB.TextBox txtPT
         Alignment       =   1  'Right Justify
         Height          =   1455
         Index           =   3
         Left            =   -71160
         MultiLine       =   -1  'True
         RightToLeft     =   -1  'True
         TabIndex        =   19
         Text            =   "frmVfrl_n.frx":0038
         Top             =   2160
         Visible         =   0   'False
         Width           =   3375
 End
 Begin VB.TextBox txtPT
         Alignment       =   1  'Right Justify
         Height          =   1455
         Index           =   2
         Left            =   -74760
         MultiLine       =   -1  'True
         RightToLeft     =   -1  'True
         TabIndex        =   18
         Text            =   "frmVfrl_n.frx":003E
         Top             =   2160
         Visible         =   0   'False
         Width           =   3375
 End
  Begin VB.Label lblTitle
         Alignment       =   2  'Center
         Caption         =   "&#1514;&#1497;&#1488;&#1493;&#1512; &#1492;&#1514;&#1497;&#1511;&#1493;&#1503;"
         Height          =   255
         Index           =   11
         Left            =   -70200
         TabIndex        =   25
         Top             =   1920
         Visible         =   0   'False
         Width           =   1575
 End
 Begin VB.Label lblTitle
         Alignment       =   2  'Center
         Caption         =   "&#1514;&#1497;&#1488;&#1493;&#1512; &#1514;&#1511;&#1500;&#1492;"
         Height          =   255
         Index           =   10
         Left            =   -73920
         TabIndex        =   24
         Top             =   1920
         Visible         =   0   'False
         Width           =   1575
      End
      Begin VB.Label lblPT
         Alignment       =   1  'Right Justify
         BackColor       =   &H80000009&
         BorderStyle     =   1  'Fixed Single
         Height          =   375
         Index           =   7
         Left            =   -69360
         TabIndex        =   17
         Top             =   1080
         Visible         =   0   'False
         Width           =   1575
      End
      Begin VB.Label lblPT
         Alignment       =   1  'Right Justify
         BackColor       =   &H80000009&
         BorderStyle     =   1  'Fixed Single
         Height          =   375
         Index           =   6
         Left            =   -71160
         TabIndex        =   16
         Top             =   1080
         Visible         =   0   'False
         Width           =   1575
      End
      Begin VB.Label lblPT
         Alignment       =   1  'Right Justify
         BackColor       =   &H80000009&
         BorderStyle     =   1  'Fixed Single
         Height          =   375
         Index           =   5
         Left            =   -72960
         TabIndex        =   15
         Top             =   1080
         Visible         =   0   'False
         Width           =   1575
      End
      Begin VB.Label lblPT
         Alignment       =   1  'Right Justify
         BackColor       =   &H80000009&
         BorderStyle     =   1  'Fixed Single
         Height          =   375
         Index           =   4
         Left            =   -74760
         TabIndex        =   14
         Top             =   1080
         Visible         =   0   'False
         Width           =   1575
      End
 End
Attribute VB_Name = "frmVfrl_n"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
313
23 июля 2007 года
insane88
440 / / 13.12.2006
Посмотри инфу о ZOrder. Повторюсь, напиши такой код:
 
Код:
... Sub TabStrip_Click()
...
If TabStrip.SelectedItem.Index=2 Then
Text.Visible = True
Else
Text.Visible = False
End If
...
End Sub


Т.е. в зависимости от индекса текущей вкладки показывай или скрывай нужные контролы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог