Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Visual Basic и Active Server Pages #8


Служба Рассылок Subscribe.Ru проекта Citycat.Ru
VBS Newswire

VBS Newswire

#8

http://vbs.pp.ru
>>> В этом выпуске:

1) Новости сайта
2) Результаты всенародного голосования
3) Новые темы обсуждения на http://vbs.pp.ru/forum
4) Статья: Создаем ActiveX - Нюанс 10

>>> Новости сайта 20.01.2001

Обновлен раздел "Жители - Наши проекты". В разделе "Создаем ActiveX" опубликована новая серия "Встроенные ActiveX control'ы или А знаете ли Вы ...", а также новый нюанс. В разделе "ActiveX - Украшательства" была опубликована новая версия компонента SuperButton, который эмулирует кнопку помощника Microsoft Office, автор: Шатрыкин Иван.

>>> Результаты всенародного голосования

Где найти художника для игры?

а) У друзей  - 12 (15%)
б) В инете  - 14 (18%)
в) На работе  - 1 (1%)
г) Я сам художник  - 34 (44%)
д) Вот это я и хотел узнать...  - 17 (22%)

Всего приняло участие: 78 человек(а)

Оставьте и свой голос - http://vbs.pp.ru

>>> Новые темы обсуждения на http://vbs.pp.ru/forum

Список всех форумов | Visual Basic | Active Server Pages | Базы данных | ActiveX | Мультимедия | Visual Basic для новичков | Работа

Кто пробовал отравить/получить файл по модему?
Еще раз о чтении из файла plz help!!!
Новый форум
Как считывать определённые строки из текст. файла?
Помогите разобраться с прозрачностью!
Передача по MS WinSock Control 6.0
Reports and subreports
DirectX
Local Chat
MSDN

>>> Статья: Нюанс 10. Вывод свойства Caption на контроле одновременно с вводом текста

Вы, наверно, неоднократно замечали что у стандартных контролов Label или TextBox при изменении свойства, отвечающего за вывод текста (Caption или Text соответственно) изменения на контроле происходят одномоментно с введением текста в окне свойств. У созданных Вами контролов такое изменение текста на контроле происходит только после подтверждения ввода клавишей ENTER. Однако VB позволяет исправить это положение. Создайте контрол, установите свойство AutoRedraw=True, а затем скопируйте нижеуказанный код. Ничего сложного в нем нет - просто создается одно свойство Caption, которое печатается на контроле.

Option Explicit

Const m_def_Caption = "Control"
Dim m_Caption As String

Public Property
Get Caption() As String
Caption = m_Caption
End Property

Public Property Let Caption(ByVal New_Caption As String)
m_Caption = New_Caption
Draw m_Caption
PropertyChanged "Caption"
End Property

Private Sub UserControl_InitProperties()
m_Caption = m_def_Caption
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_Caption = PropBag.ReadProperty("Caption", m_def_Caption)
End Sub

Private Sub UserControl_Show()
Draw m_Caption
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Caption", m_Caption, m_def_Caption)
End Sub

Private Sub Draw(str As String)
UserControl.Cls
UserControl.Print str
End Sub


На тестировочной форме отобразите Ваш контрол и попытайтесь изменить его свойство Caption. Все происходит обычным порядком, т.е. текст обновляется только по нажатии ENTER.
Перейдите в контрол и выберите меню Tools/Procedure Attributes ..., нажмите кнопку Advanced>> и для свойства Caption в выпадающем списке Procedure ID - выберите так же Caption. Нажмите ОК. Если сейчас в тестировочной форме вы попробуете изменить данное свойство контрола, то увидите, что это происходит одновременно и на самом контроле.
Такая ситуация характерна не только для контролов, созданных с "нуля", но и для контролов, использующих готовые элементы управления (например Label). Если используете TextBox, то, соответственно, необходимо выбрать Procedure ID = Text.
Из недостатков этого метода можно отметить два:
1. Если данное свойство используется по умолчанию (Procedure ID = Default), то второе ID ему присвоить уже нельзя. Хотя, в VB.Net свойств по умолчанию, вроде бы, не предвидится.
2. Если Вы используете, допустим, 2 или более Label, Caption которых имеют самостоятельные свойства. В данной ситуации Вы сможете такую манипуляцию провести только у одного из них.

Автор статьи: Михаил Эскин

Ведущий проекта "VBS"
Сергей Никифоров

 



http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное