SubCellIndex Property

Summary
Gets the value that indicates the index of the sub-cell that has been activated.
Syntax
C#
C++/CLI
public int SubCellIndex { get; } 
            public: 
property int SubCellIndex { 
   int get(); 
} 

Property Value

Value that indicates the zero-based index of the sub-cell that has been activated.

Example
C#
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:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.2.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MedicalViewer Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.