Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > WebUserControl


Автор: Cree 4.8.2006, 15:40
Вообщем столкнулся со следующей проблемой.

Создал свой WebUserControl, сделал несколько public event и public property. Хочу что бы они были видны в PropertyPanel в дизайнере VS для данного контрола. Public properties поднимаются туда автоматом, тк они public. А вот public event - что то они не хотят туда подниматься. В WindowsForms - все поднимается нормально. В MSDN указанно что для ASP.NET И для Windows Forms сия штука работает несколько по разному. Но то как именно поднять public event в WebUserControl я так и не нашел. Может кто сталкивался с этим - подскажите как лечится. 

Автор: Red Wind 4.8.2006, 15:47
Это делаеться примерно так:
Код

[Category("MyCategory")]
protected virtual void OnEvent(EventArgs e) 
{
    if (Event != null)
    Event(this, e);
}

Автор: Red Wind 5.8.2006, 13:48
Или ещё другой способ:
Код


    public delegate void MPEventHandler(object sender, MPEventArgs e);

    public class MPEventArgs : EventArgs
    {
        public int MID;

        public MPEventArgs(int MID)
        {
            this.MID = MID;
        }
    }

        #region EditEventRegion

        private static readonly object EditEvent = new object();

        [
        Category("Action"),
        Description("Raised when the user clicks the EditButton.")
        ]
        public event MPEventHandler Edit
        {
            add
            {
                Events.AddHandler(EditEvent, value);
            }
            remove
            {
                Events.RemoveHandler(EditEvent, value);
            }
        }

        // Привязывем клик кнопкм к нашему событию
        private void EditButton_Click(object sender, EventArgs e)
        {
            MPEventArgs a = new MPEventArgs(MID);
            OnEdit(a);
        }

        // Метод вдзываеться при событии OnEdit
        protected virtual void OnEdit(MPEventArgs e)
        {
            MPEventHandler EditHandler = (MPEventHandler)Events[EditEvent];
            if (EditHandler != null)
            {
                EditHandler(this, e);
            }
        } 
        #endregion



Пример выдран из большого проекта, может быть не очень понятено что к чему... 

Автор: Cree 11.8.2006, 07:09
ВСетаки интресно, может я что то не то делаю - но не первый не второй пример не прокатывает для WebUserControl.

Автор: Red Wind 11.8.2006, 15:31
Ну не знаю, второй пример какраз из WebControl'а. А где именно происходит ошибка? Или что не ясно?

Автор: Cree 12.8.2006, 11:52
Ошибки как раз таки негде не происходит, но events  доступны только из декларативных объявлений, либо из файлика с кодом - странички в которой WebUserControl используется. Но при клике вдизайнере правой кнопкой мыши и выберании Properties,  они там в свойствах не видны. -  а вот почему..... -  никак не могу понять.



Автор: Red Wind 13.8.2006, 18:59
Странно, у меня всё есть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)