LEADTOOLS Medical (Leadtools.MedicalViewer assembly)

MedicalViewerActiveSubCellChangedEventArgs Class

Show in webframe





Members 
The MedicalViewerActiveSubCellChangedEventArgs class provides data about the MedicalViewerMultiCell.ActiveSubCellChanged event.
Object Model
Syntax
public class MedicalViewerActiveSubCellChangedEventArgs : System.EventArgs 
'Declaration
 
Public Class MedicalViewerActiveSubCellChangedEventArgs 
   Inherits System.EventArgs
'Usage
 
Dim instance As MedicalViewerActiveSubCellChangedEventArgs

            

            
public ref class MedicalViewerActiveSubCellChangedEventArgs : public System.EventArgs 
Example
      Imports Leadtools
      Imports Leadtools.Codecs
      Imports Leadtools.MedicalViewer

      Private Class MedicalViewerForm : Inherits Form
         Private _medicalViewer As MedicalViewer
         Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
            _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
         End Sub

         Public Sub New()
            Dim _codecs As RasterCodecs = New RasterCodecs()
            Dim _image As RasterImage

            AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged

            ' Create the medical viewer and adjust the size and the location.
            _medicalViewer = New MedicalViewer(1, 2)
            _medicalViewer.Location = New Point(0, 0)
            _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)

            ' Load an image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm"))
            Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1)

                ' add some actions that will be used to change the properties of the images inside the control.
            cell.AddAction(MedicalViewerActionType.WindowLevel)
            cell.AddAction(MedicalViewerActionType.Alpha)
            cell.AddAction(MedicalViewerActionType.Offset)
            cell.AddAction(MedicalViewerActionType.Stack)

                ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
                cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)

                ' adjust some properties of the cell and add some tags.
                cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
                cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
                cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
                cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
                cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)

                _medicalViewer.Cells.Add(cell)



                ' Load another image and then add it to the control.
                _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm"))
                Dim cell1 As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 2, 2)
                _medicalViewer.Cells.Add(cell1)

                ' add some actions that will be used to change the properties of the images inside the control.
                cell1.AddAction(MedicalViewerActionType.WindowLevel)
                cell1.AddAction(MedicalViewerActionType.Alpha)
                cell1.AddAction(MedicalViewerActionType.Offset)
                cell1.AddAction(MedicalViewerActionType.Stack)

                ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
                cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)

                ' adjust some properties of the cell and add some tags.
            cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
            cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
            cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
            cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
            cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)


            Controls.Add(_medicalViewer)
            _medicalViewer.Dock = DockStyle.Fill
         End Sub
         Public ReadOnly Property Viewer() As MedicalViewer
            Get
               Return _medicalViewer
            End Get
         End Property
      End Class

      Private Function GetMedicalControl() As MedicalViewerForm
         Return New MedicalViewerForm()
      End Function

      ' This example will link the active sub-cell of the  first cell to the second cell and vice versa.

      Public Sub MedicalViewerActiveSubCellChangedExample()
         Dim myForm As MedicalViewerForm = GetMedicalControl()
         Dim medicalViewer As MedicalViewer = myForm.Viewer


         Dim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell)
         Dim cell1 As MedicalViewerMultiCell = CType(medicalViewer.Cells(1), MedicalViewerMultiCell)

         AddHandler cell.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged
         AddHandler cell1.ActiveSubCellChanged, AddressOf cell1_ActiveSubCellChanged
         myForm.ShowDialog()
      End Sub

      Private Sub cell1_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
         medicalViewer_ActiveSubCellChanged(sender, e)
      End Sub

      Private Sub medicalViewer_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
         Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)
         Dim index As Integer
         If (e.CellIndex = 1) Then
            index = 0
         Else
            index = 1
         End If
         Dim theOtherCell As MedicalViewerMultiCell = CType(cell.ParentViewer.Cells(index), MedicalViewerMultiCell)


         Dim stackProperties As MedicalViewerStack = CType(theOtherCell.GetActionProperties(MedicalViewerActionType.Stack), MedicalViewerStack)

         stackProperties.ActiveSubCell = e.SubCellIndex Mod (theOtherCell.Rows * theOtherCell.Columns)
         stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell
         theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties)
         stackProperties.Dispose()

      End Sub

      Public NotInheritable Class LEAD_VARS
      Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
      End Class
      using Leadtools;
      using Leadtools.Codecs;
      using Leadtools.MedicalViewer;

      class MedicalViewerForm : Form
      {
         private MedicalViewer _medicalViewer;
         void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
         {
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
         }

         public MedicalViewerForm()
         {
            RasterCodecs _codecs = new RasterCodecs();
            RasterImage _image;

            this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);

            // Create the medical viewer and adjust the size and the location.
            _medicalViewer = new MedicalViewer(1, 2);
            _medicalViewer.Location = new Point(0, 0);
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);

            // Load an image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
            MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell.AddAction(MedicalViewerActionType.WindowLevel);
            cell.AddAction(MedicalViewerActionType.Alpha);
            cell.AddAction(MedicalViewerActionType.Offset);
            cell.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);

            _medicalViewer.Cells.Add(cell);



            // Load another image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
            MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
            _medicalViewer.Cells.Add(cell1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell1.AddAction(MedicalViewerActionType.WindowLevel);
            cell1.AddAction(MedicalViewerActionType.Alpha);
            cell1.AddAction(MedicalViewerActionType.Offset);
            cell1.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);


            Controls.Add(_medicalViewer);
            _medicalViewer.Dock = DockStyle.Fill;
         }
         public MedicalViewer Viewer
         {
            get { return _medicalViewer; }
         }
      }

      MedicalViewerForm GetMedicalControl()
      {
         return new MedicalViewerForm();
      }

      // This example will link the active sub-cell of the  first cell to the second cell and vice versa.

      public void MedicalViewerActiveSubCellChangedExample()
      {
         MedicalViewerForm myForm = GetMedicalControl();
         MedicalViewer medicalViewer = myForm.Viewer;


         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
         MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);

         cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
         cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
         myForm.ShowDialog();
      }

      void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         medicalViewer_ActiveSubCellChanged(sender, e);
      }

      void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
         int index = (e.CellIndex == 1) ? 0 : 1;
         MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);


         MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);

         stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
         stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
         theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
         stackProperties.Dispose();

      }

      static class LEAD_VARS
      {
      public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
      }

      Imports Leadtools
      Imports Leadtools.Codecs
      Imports Leadtools.MedicalViewer

      Private Class MedicalViewerForm : Inherits Form
         Private _medicalViewer As MedicalViewer
         Private Sub MedicalViewerForm_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
            _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
         End Sub

         Public Sub New()
            Dim _codecs As RasterCodecs = New RasterCodecs()
            Dim _image As RasterImage

            AddHandler SizeChanged, AddressOf MedicalViewerForm_SizeChanged

            ' Create the medical viewer and adjust the size and the location.
            _medicalViewer = New MedicalViewer(1, 2)
            _medicalViewer.Location = New Point(0, 0)
            _medicalViewer.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)

            ' Load an image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "xa.dcm"))
            Dim cell As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 1, 1)

                ' add some actions that will be used to change the properties of the images inside the control.
            cell.AddAction(MedicalViewerActionType.WindowLevel)
            cell.AddAction(MedicalViewerActionType.Alpha)
            cell.AddAction(MedicalViewerActionType.Offset)
            cell.AddAction(MedicalViewerActionType.Stack)

                ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
                cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
                cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)

                ' adjust some properties of the cell and add some tags.
                cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
                cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
                cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
                cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
                cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)

                _medicalViewer.Cells.Add(cell)



                ' Load another image and then add it to the control.
                _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "mr.dcm"))
                Dim cell1 As MedicalViewerMultiCell = New MedicalViewerMultiCell(_image, True, 2, 2)
                _medicalViewer.Cells.Add(cell1)

                ' add some actions that will be used to change the properties of the images inside the control.
                cell1.AddAction(MedicalViewerActionType.WindowLevel)
                cell1.AddAction(MedicalViewerActionType.Alpha)
                cell1.AddAction(MedicalViewerActionType.Offset)
                cell1.AddAction(MedicalViewerActionType.Stack)

                ' assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
                cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active)
                cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active)

                ' adjust some properties of the cell and add some tags.
            cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448")
            cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame)
            cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale)
            cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData)
            cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView)


            Controls.Add(_medicalViewer)
            _medicalViewer.Dock = DockStyle.Fill
         End Sub
         Public ReadOnly Property Viewer() As MedicalViewer
            Get
               Return _medicalViewer
            End Get
         End Property
      End Class

      Private Function GetMedicalControl() As MedicalViewerForm
         Return New MedicalViewerForm()
      End Function

      ' This example will link the active sub-cell of the  first cell to the second cell and vice versa.

      Public Sub MedicalViewerActiveSubCellChangedExample()
         Dim myForm As MedicalViewerForm = GetMedicalControl()
         Dim medicalViewer As MedicalViewer = myForm.Viewer


         Dim cell As MedicalViewerMultiCell = CType(medicalViewer.Cells(0), MedicalViewerMultiCell)
         Dim cell1 As MedicalViewerMultiCell = CType(medicalViewer.Cells(1), MedicalViewerMultiCell)

         AddHandler cell.ActiveSubCellChanged, AddressOf medicalViewer_ActiveSubCellChanged
         AddHandler cell1.ActiveSubCellChanged, AddressOf cell1_ActiveSubCellChanged
         myForm.ShowDialog()
      End Sub

      Private Sub cell1_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
         medicalViewer_ActiveSubCellChanged(sender, e)
      End Sub

      Private Sub medicalViewer_ActiveSubCellChanged(ByVal sender As Object, ByVal e As MedicalViewerActiveSubCellChangedEventArgs)
         Dim cell As MedicalViewerMultiCell = CType(sender, MedicalViewerMultiCell)
         Dim index As Integer
         If (e.CellIndex = 1) Then
            index = 0
         Else
            index = 1
         End If
         Dim theOtherCell As MedicalViewerMultiCell = CType(cell.ParentViewer.Cells(index), MedicalViewerMultiCell)


         Dim stackProperties As MedicalViewerStack = CType(theOtherCell.GetActionProperties(MedicalViewerActionType.Stack), MedicalViewerStack)

         stackProperties.ActiveSubCell = e.SubCellIndex Mod (theOtherCell.Rows * theOtherCell.Columns)
         stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell
         theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties)
         stackProperties.Dispose()

      End Sub

      Public NotInheritable Class LEAD_VARS
      Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
      End Class
      using Leadtools;
      using Leadtools.Codecs;
      using Leadtools.MedicalViewer;

      class MedicalViewerForm : Form
      {
         private MedicalViewer _medicalViewer;
         void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
         {
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
         }

         public MedicalViewerForm()
         {
            RasterCodecs _codecs = new RasterCodecs();
            RasterImage _image;

            this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);

            // Create the medical viewer and adjust the size and the location.
            _medicalViewer = new MedicalViewer(1, 2);
            _medicalViewer.Location = new Point(0, 0);
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);

            // Load an image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
            MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell.AddAction(MedicalViewerActionType.WindowLevel);
            cell.AddAction(MedicalViewerActionType.Alpha);
            cell.AddAction(MedicalViewerActionType.Offset);
            cell.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);

            _medicalViewer.Cells.Add(cell);



            // Load another image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
            MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
            _medicalViewer.Cells.Add(cell1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell1.AddAction(MedicalViewerActionType.WindowLevel);
            cell1.AddAction(MedicalViewerActionType.Alpha);
            cell1.AddAction(MedicalViewerActionType.Offset);
            cell1.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);


            Controls.Add(_medicalViewer);
            _medicalViewer.Dock = DockStyle.Fill;
         }
         public MedicalViewer Viewer
         {
            get { return _medicalViewer; }
         }
      }

      MedicalViewerForm GetMedicalControl()
      {
         return new MedicalViewerForm();
      }

      // This example will link the active sub-cell of the  first cell to the second cell and vice versa.

      public void MedicalViewerActiveSubCellChangedExample()
      {
         MedicalViewerForm myForm = GetMedicalControl();
         MedicalViewer medicalViewer = myForm.Viewer;


         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
         MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);

         cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
         cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
         myForm.ShowDialog();
      }

      void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         medicalViewer_ActiveSubCellChanged(sender, e);
      }

      void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
         int index = (e.CellIndex == 1) ? 0 : 1;
         MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);


         MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);

         stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
         stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
         theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
         stackProperties.Dispose();

      }

      static class LEAD_VARS
      {
      public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
      }

      using Leadtools;
      using Leadtools.Codecs;
      using Leadtools.MedicalViewer;

      class MedicalViewerForm : Form
      {
         private MedicalViewer _medicalViewer;
         void MedicalViewerForm_SizeChanged(object sender, EventArgs e)
         {
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
         }

         public MedicalViewerForm()
         {
            RasterCodecs _codecs = new RasterCodecs();
            RasterImage _image;

            this.SizeChanged += new EventHandler(MedicalViewerForm_SizeChanged);

            // Create the medical viewer and adjust the size and the location.
            _medicalViewer = new MedicalViewer(1, 2);
            _medicalViewer.Location = new Point(0, 0);
            _medicalViewer.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);

            // Load an image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"xa.dcm"));
            MedicalViewerMultiCell cell = new MedicalViewerMultiCell(_image, true, 1, 1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell.AddAction(MedicalViewerActionType.WindowLevel);
            cell.AddAction(MedicalViewerActionType.Alpha);
            cell.AddAction(MedicalViewerActionType.Offset);
            cell.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);

            _medicalViewer.Cells.Add(cell);



            // Load another image and then add it to the control.
            _image = _codecs.Load(Path.Combine(LEAD_VARS.ImagesDir,"mr.dcm"));
            MedicalViewerMultiCell cell1 = new MedicalViewerMultiCell(_image, true, 2, 2);
            _medicalViewer.Cells.Add(cell1);

            // add some actions that will be used to change the properties of the images inside the control.
            cell1.AddAction(MedicalViewerActionType.WindowLevel);
            cell1.AddAction(MedicalViewerActionType.Alpha);
            cell1.AddAction(MedicalViewerActionType.Offset);
            cell1.AddAction(MedicalViewerActionType.Stack);

            // assign the added actions to a mouse button, meaning that when the user clicks and drags the mouse button, the associated action will be activated.
            cell1.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Alpha, MedicalViewerMouseButtons.Middle, MedicalViewerActionFlags.Active);
            cell1.SetAction(MedicalViewerActionType.Offset, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active);

            // adjust some properties of the cell and add some tags.
            cell1.SetTag(2, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.UserData, "EX. ID 230-36-5448");
            cell1.SetTag(4, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Frame);
            cell1.SetTag(6, MedicalViewerTagAlignment.TopLeft, MedicalViewerTagType.Scale);
            cell1.SetTag(2, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.WindowLevelData);
            cell1.SetTag(1, MedicalViewerTagAlignment.BottomLeft, MedicalViewerTagType.FieldOfView);


            Controls.Add(_medicalViewer);
            _medicalViewer.Dock = DockStyle.Fill;
         }
         public MedicalViewer Viewer
         {
            get { return _medicalViewer; }
         }
      }

      MedicalViewerForm GetMedicalControl()
      {
         return new MedicalViewerForm();
      }

      // This example will link the active sub-cell of the  first cell to the second cell and vice versa.

      public void MedicalViewerActiveSubCellChangedExample()
      {
         MedicalViewerForm myForm = GetMedicalControl();
         MedicalViewer medicalViewer = myForm.Viewer;


         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)(medicalViewer.Cells[0]);
         MedicalViewerMultiCell cell1 = (MedicalViewerMultiCell)(medicalViewer.Cells[1]);

         cell.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(medicalViewer_ActiveSubCellChanged);
         cell1.ActiveSubCellChanged += new EventHandler<MedicalViewerActiveSubCellChangedEventArgs>(cell1_ActiveSubCellChanged);
         myForm.ShowDialog();
      }

      void cell1_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         medicalViewer_ActiveSubCellChanged(sender, e);
      }

      void medicalViewer_ActiveSubCellChanged(object sender, MedicalViewerActiveSubCellChangedEventArgs e)
      {
         MedicalViewerMultiCell cell = (MedicalViewerMultiCell)sender;
         int index = (e.CellIndex == 1) ? 0 : 1;
         MedicalViewerMultiCell theOtherCell = (MedicalViewerMultiCell)(cell.ParentViewer.Cells[index]);


         MedicalViewerStack stackProperties = (MedicalViewerStack)theOtherCell.GetActionProperties(MedicalViewerActionType.Stack);

         stackProperties.ActiveSubCell = e.SubCellIndex % (theOtherCell.Rows * theOtherCell.Columns);
         stackProperties.ScrollValue = e.SubCellIndex - stackProperties.ActiveSubCell;
         theOtherCell.SetActionProperties(MedicalViewerActionType.Stack, stackProperties);
         stackProperties.Dispose();

      }

      static class LEAD_VARS
      {
      public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
      }

Requirements

Target Platforms

See Also

Reference

MedicalViewerActiveSubCellChangedEventArgs Members
Leadtools.MedicalViewer Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.MedicalViewer requires a Medical Imaging license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features