C # обрабатывает событие массива элемента управления, вызванное другим элементом управления - PullRequest
1 голос
/ 19 октября 2008

Я работаю над редактором winforms html с несколькими окнами редактора, так как каждое окно редактора будет записано в поле базы данных.

Я создаю окна редактора в виде управляющего массива и надеялся, что над ними будет всего одна панель инструментов, которая будет обрабатывать такие события, как применить жирный шрифт, курсив ... на основе окна, в котором я находился в настоящее время. К сожалению, очевидно, событие Обработчик события на панели инструментов не знает, какой элемент управления был выбран ранее.

Есть ли способ получить это или я должен добавить событие onenter в каждое окно редактора и статически сохранить последнее использованное окно редактора.

Ответы [ 2 ]

1 голос
/ 19 октября 2008

Я думаю, что хранить окна, элемент управления HTML-редактора или просто индекс - это самый простой вариант.

0 голосов
/ 19 октября 2008

Я не знаком с типами событий, о которых вы упомянули, и, возможно, мне чего-то не хватает, но в разработке WinForms часто возникают события, которые предоставляют информацию об отправителе, а также о событии, соответствующем EventHandler делегат?

[SerializableAttribute]
[ComVisibleAttribute(true)]
public delegate void EventHandler(
    Object sender,
    EventArgs e
)

Так работает System.Windows.Forms.Control.Click . Не могли бы вы следовать этому примеру, где sender будет окном редактора в каждом случае?

...