From 2876ad911a8b1e98f99d27e30d94b403a53f04cf Mon Sep 17 00:00:00 2001 From: Rich Date: Fri, 11 Feb 2011 21:14:08 +0000 Subject: [PATCH] Handle MyStepRTB Dispose Fixed a NullReference Bug --- PROMS/Volian.Controls.Library/DisplayTabControl.cs | 8 ++++++++ PROMS/Volian.Controls.Library/GridItem.cs | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 427fcbb8..de262deb 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -157,7 +157,11 @@ namespace Volian.Controls.Library _MyItemInfo = args.MyItemInfo; _MyEditItem = args.MyEditItem; if (_MyEditItem != null) + { _MyStepRTB = _MyEditItem.MyStepRTB; + if(_MyStepRTB != null) + _MyStepRTB.Disposed += new EventHandler(_MyStepRTB_Disposed); + } else _MyStepRTB = null; } @@ -169,6 +173,10 @@ namespace Volian.Controls.Library } if (ItemSelectedChanged != null) ItemSelectedChanged(sender, args); } + void _MyStepRTB_Disposed(object sender, EventArgs e) + { + _MyStepRTB = null; + } public event StepPanelModeChangeEvent ModeChange; internal void OnModeChange(object sender, StepRTBModeChangeEventArgs args) { diff --git a/PROMS/Volian.Controls.Library/GridItem.cs b/PROMS/Volian.Controls.Library/GridItem.cs index 618e898e..f175cb9f 100644 --- a/PROMS/Volian.Controls.Library/GridItem.cs +++ b/PROMS/Volian.Controls.Library/GridItem.cs @@ -215,8 +215,11 @@ namespace Volian.Controls.Library private string _OrigRtf; // used to store original rtf to allow for 'escape' key restore void MyFlexGrid_SelChange(object sender, EventArgs e) { - if (MyFlexGrid.Selection.IsSingleCell && MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0) - _OrigRtf = MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col].ToString(); + if (MyFlexGrid.Selection.IsSingleCell && MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0) + { + object obj = MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col]; + _OrigRtf = obj == null ? string.Empty : obj.ToString(); + } } void MyStepRTB_KeyDown(object sender, KeyEventArgs e) {