Technically, you can't raise an event from within an event... events
aren't language constructs. You can, however, raise an event from
within an event _handler_, and there's nothing wrong with that. Anyway,
that's quibbling, isn't it?
Is there anything wrong with raising an event from within an event
handler? No, there's nothing wrong with it at all. Just like
exceptions, you may want to transform events into other events. For
example, I wrote a bunch of Binding classes for use in my Windows
forms: they connect properties in my model class to controls on my
form. One of the kinds of binding that I created is an AndBinding. The
AndBinding subscribes to two xxxChanged events of my model, each
corresponding to a boolean property of the model. Whenever one of these
two properties changes, the model raises the xxxChanged event. If the
AndBinding finds that this makes the result of an "and" on the two
properties change its value, it in turn raises a "ValueChanged" event,
right from inside the event handler. In other words, it handles an
event from one object and then transforms that event into a different
event to be consumed by some other object.
Of course, if you create circular chains of events then your program
will die with a stack overflow when that event is raised (event
dispatch is just a method call, after all).
As well, there are some stylstic concerns. If you have lots of code
raising events from within event handlers then maybe you're trying to
pack too many smarts into your presentation code and need to take a
look at the Model-View-Controller software pattern. It's not
syntactically evil... it's just that if grows too much it can be
difficult to figure out what's going on.