To improve usability, Mi-Forms client provides the ability to change pen color during data capture. However, in some situations disabling the native functionality of this feature and taking active control of pen colors is an important task to accomplish the business requirements around the form.

Consider a form that is routed in the workflow during its life cycle. At each queue, a specific color could be used to determine which user has edited the form.

There are two steps to accomplish this requirement. First, change the pen's color


<MiCode(FormScriptEventType.AfterOpen)> _
    Public Sub Form_AfterOpen(ByVal e As AfterOpenEventArgs)
       If _Color.Value = "Blue" Then
          isScriptLogic = True
          Dim newPen As MiCo.MiForms.Pen = New MiCo.MiForms.Pen()
          newPen.Color = New MiCo.MiForms.Color(System.Drawing.Color.Blue)
          _component.CurrentPen = newPen
      End If
   End Sub


Second, prevent the user from changing pen color on the form


<MiCode(FormScriptEventType.BeforePenChange)> _
     Public Sub Form_BeforePenChange(ByVal e As BeforePenChangeEventArgs)
        If isScriptLogic = False Then
          e.Cancel = True
          isScriptLogic = False
        End If
    End Sub


isScriptLogic is a boolean variable that can be used to determine if the pen color change event can be raised by scripting or by user.