示例#1
0
        /// <summary>
        /// Call as the entire body of your OnPaint, if you want to override OnPaint.
        /// </summary>
        /// <param name="e"></param>
        public void SequenceOnPaint(PaintEventArgs e)
        {
#if TESTMS
            Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint start: " + m_obj.ToString());
#endif
            CheckDisposed();
#if TESTMS
            //Debug.WriteLineIf(m_matchingHvo, "MessageSequencer.SequenceOnPaint Must not be disposed.");
#endif
#if TESTMS
            Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint check m_fReentering value; original value: " + m_fReentering.ToString());
#endif

            if (m_fReentering)
            {
#if TESTMS
                Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint: m_fReentering==true: call m_master.Invalidate()");
#endif
                m_master.Invalidate();
#if TESTMS
                Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint finished m_master.Invalidate()");
#endif
            }
            else
            {
#if TESTMS
                Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint try: reset m_fReentering to true; original value: " + m_fReentering.ToString());
#endif
                m_fReentering = true;
                try
                {
#if TESTMS
                    Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint try:  call m_receiver.OriginalOnPaint start: " + e.ToString());
#endif
                    m_receiver.OriginalOnPaint(e);
#if TESTMS
                    Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint try:  call m_receiver.OriginalOnPaint end: " + e.ToString());
#endif
                }
                finally
                {
#if TESTMS
                    Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint finally: call DoPendingMessages()");
#endif
                    DoPendingMessages();
#if TESTMS
                    Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint try: finished call DoPendingMessages()");
                    Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint finally: reset m_fReentering to false; original value: " + m_fReentering.ToString());
#endif
                    m_fReentering = false;
                }
            }
#if TESTMS
            Debug.WriteLineIf(s_fMatchingHvo, "MessageSequencer.SequenceOnPaint end: " + m_obj.ToString());
#endif
        }