Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: UserControl Добавлено: 16.09.05 10:08  

Автор вопроса:  gvozd | Web-сайт: www.gvozdsoft.com
Создаю UserControl, на нем два ImageBox'а у которых свойство Picture связано с свойствами UserControl'а (NormalPicture = imgNormal.Picture, PressedPicture = imgPressed.Picture). Потом цепляю картинки к этим свойствам, запускаю проект - пусто, останавливаю в этих свойствах None. В чем проблема?

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #1 Добавлено: 16.09.05 11:19
 Так, на всякий,
... А ты UserControl к проэкту подключил? =))

Ответить

Номер ответа: 2
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #2
Добавлено: 16.09.05 11:29
Е-мое, конечно подключил, я уже из формы эти свойства и прописываю.

Ответить

Номер ответа: 3
Автор ответа:
 someone



Вопросов: 215
Ответов: 1596
 Web-сайт: 123
 Профиль | | #3
Добавлено: 16.09.05 11:36
Unknown Lamer, Я ПОРАЖЕН!! :)
2gvozd, попробуй прописывать в UserControl'e, а если это невозможно, то проверь, ведь у тебя в контроле есть код, который задает эти свойства, верно?
Вероятно, что он не работает. Проверь, при каком событии это происходит, добавь рядом строчку
MsgBox "?"

Если при изменении свойст есть Msgbox, то... Незнаю...
А если нету, значит че то с событиями перепутал...

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 16.09.05 11:38
Лучше бы код здесь подвесил. Кстати, Set тоже в таких сулчаях не мешает.

Ответить

Номер ответа: 5
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #5 Добавлено: 16.09.05 12:11
2Empro:
 Ненадо поражаться, Откуда я знаю что он это сделал? Ато все будут баги искать, а gvozd просто забыл подключить польз. контрол... :)
2gvozd:
 Правильно ли я понял, тебе просто необходимо увидать в своем проэкте картинки из UserControl?
Тогда ненадо прописывать его в код!! Подключай его как компонент и будет тебе твоя картинка, а повезет - даже две :)

  зы ненадо писать, что я туплю... может не так понял, бывает =))

Ответить

Номер ответа: 6
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #6
Добавлено: 16.09.05 12:35
Короче, я делаю кнопку, она должна западать, отсюда и два Имейджа - один зажатый, другой - нет.

Ответить

Номер ответа: 7
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #7 Добавлено: 16.09.05 13:01
Посмотри свойства контрола, типа Windowless, ClipControls, AutoRedraw, HasDC и т.п. Больше без кода сказать трудно :)

Ответить

Номер ответа: 8
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #8
Добавлено: 16.09.05 18:52
Сейчас проделал эту операцию с помощью Визарда UserControl. Работает на ура. Не с тем связи делаешь, наверно.
NormalPicture Property связан с Image1 member Picture
применять
Set UserControl1.Picture = UserControl1.NormalPicture

Ответить

Номер ответа: 9
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #9
Добавлено: 16.09.05 21:56
2||Unknown Lamer||:
как он мог не подключить его к проекту, если он видит что изображ. нет! не глупи!

2gvozd:
попробуй юзать готовые команд бутоны. без имадж бокстов, на чистом айпи?!

Ответить

Номер ответа: 10
Автор ответа:
 Barsik



Разработчик Offline Client

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #10
Добавлено: 16.09.05 22:02
2gvozd:
смотри мыло. выслал пример.

Ответить

Номер ответа: 11
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #11
Добавлено: 17.09.05 09:08
Barsik, это немного не то... Мне нужно, чтобы при нажатии отображалась другая картинка, и хочется, чтобы все обрабатывалось внутри контрола.

Вот код моего контрола:
Option Explicit
'Default Property Values:
Const m_def_IsPressed = 0
'Property Variables:
Dim m_IsPressed As Boolean
'Event Declarations:
Event Click() 'MappingInfo=imgButton,imgButton,-1,Click
Event DblClick() 'MappingInfo=imgButton,imgButton,-1,DblClick
Event KeyDown(KeyCode As Integer, Shift As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyDown
Event KeyPress(KeyAscii As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyPress
Event KeyUp(KeyCode As Integer, Shift As Integer) 'MappingInfo=UserControl,UserControl,-1,KeyUp
Event MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseDown
Event MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseMove
Event MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'MappingInfo=imgButton,imgButton,-1,MouseUp



'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=UserControl,UserControl,-1,Enabled
Public Property Get Enabled() As Boolean
    Enabled = UserControl.Enabled
End Property

Public Property Let Enabled(ByVal New_Enabled As Boolean)
    UserControl.Enabled() = New_Enabled
    PropertyChanged "Enabled"
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=UserControl,UserControl,-1,Refresh
Public Sub Refresh()
    UserControl.Refresh
End Sub

Private Sub imgButton_Click()
    RaiseEvent Click
End Sub

Private Sub imgButton_DblClick()
    RaiseEvent DblClick
End Sub

Private Sub UserControl_Click()
    If IsPressed = False Then
        IsPressed = True
        imgPressed.Visible = True
        imgNormal.Visible = False
    Else
        IsPressed = False
        imgNormal.Visible = True
        imgPressed.Visible = False
    End If
End Sub

Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
    RaiseEvent KeyDown(KeyCode, Shift)
End Sub

Private Sub UserControl_KeyPress(KeyAscii As Integer)
    RaiseEvent KeyPress(KeyAscii)
End Sub

Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer)
    RaiseEvent KeyUp(KeyCode, Shift)
End Sub

Private Sub imgButton_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseDown(Button, Shift, X, Y)
End Sub

Private Sub imgButton_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseMove(Button, Shift, X, Y)
End Sub

Private Sub imgButton_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    RaiseEvent MouseUp(Button, Shift, X, Y)
End Sub

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=imgNormal,imgNormal,-1,Picture
Public Property Get NormalPicture() As Picture
    Set NormalPicture = imgNormal.Picture
End Property

Public Property Set NormalPicture(ByVal New_NormalPicture As Picture)
    Set imgNormal.Picture = New_NormalPicture
    PropertyChanged "NormalPicture"
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MappingInfo=imgPressed,imgPressed,-1,Picture
Public Property Get PressedPicture() As Picture
    Set PressedPicture = imgPressed.Picture
End Property

Public Property Set PressedPicture(ByVal New_PressedPicture As Picture)
    Set imgPressed.Picture = New_PressedPicture
    PropertyChanged "PressedPicture"
End Property

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=0,0,0,0
Public Property Get IsPressed() As Boolean
    IsPressed = m_IsPressed
End Property

Public Property Let IsPressed(ByVal New_IsPressed As Boolean)
    m_IsPressed = New_IsPressed
    PropertyChanged "IsPressed"
End Property

'Initialize Properties for User Control
Private Sub UserControl_InitProperties()
    m_IsPressed = m_def_IsPressed
End Sub

'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

    UserControl.Enabled = PropBag.ReadProperty("Enabled", True)
    Set Picture = PropBag.ReadProperty("NormalPicture", Nothing)
    Set Picture = PropBag.ReadProperty("PressedPicture", Nothing)
    m_IsPressed = PropBag.ReadProperty("IsPressed", m_def_IsPressed)
End Sub

Private Sub UserControl_Resize()
    imgButton.Width = UserControl.Width
    imgButton.Height = UserControl.Height
    imgNormal.Width = UserControl.Width
    imgNormal.Height = UserControl.Height
    imgPressed.Width = UserControl.Width
    imgPressed.Height = UserControl.Height
End Sub

'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

    Call PropBag.WriteProperty("Enabled", UserControl.Enabled, True)
    Call PropBag.WriteProperty("NormalPicture", Picture, Nothing)
    Call PropBag.WriteProperty("PressedPicture", Picture, Nothing)
    Call PropBag.WriteProperty("IsPressed", m_IsPressed, m_def_IsPressed)
End Sub

Ответить

Номер ответа: 12
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 18.09.05 00:29
дело в том что Public Property Set NormalPicture вызывается только когда в IDE устанавливаешь свойство NormalPicture, в IDE оно и прорисовало картинку. Далее когда запускаешь программу читает свойства контролов
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
...

а здесь у тебя фигня

    Set Picture = PropBag.ReadProperty("NormalPicture", Nothing)
    Set Picture = PropBag.ReadProperty("PressedPicture", Nothing)

т.е. ты просто присвоил переменной Picture то что в PropBag.ReadProperty, а оно у тебя Nothing. Это не всё... ты ж присвоил только переменной Picture картинку (предположим что Nothing нестоит), а далее? где же какие-то присвоения изображения ImageBox'ам ??

Ответить

Номер ответа: 13
Автор ответа:
 gvozd



Разработчик Offline Client

Вопросов: 164
Ответов: 1317


 Web-сайт: www.gvozdsoft.com
 Профиль | | #13
Добавлено: 19.09.05 11:51
Всем спасибо. Проблема решена.

Ответить

Номер ответа: 14
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #14 Добавлено: 19.09.05 19:04
покаж решение

Ответить

Номер ответа: 15
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #15 Добавлено: 19.09.05 19:33
Да. Интересно же.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам