this.radSchedulerControl.AppointmentAdded += new EventHandler<AppointmentAddedEventArgs>(radSchedulerControl_AppointmentAdded);
this.radSchedulerControl.Appointments.CollectionChanged += new Telerik.WinControls.Data.NotifyCollectionChangedEventHandler(Appointments_CollectionChanged);
....however the problem with this event is that it get triggered multiple times based on what was changed for on the existing appointment.
A different thread suggested using the ApplySettingsToEvent function in the CustomAppointmentEditDialog class when saving an appointment to add my custom logic. However, in ApplySettingsToEvent I could not determine how to differentiate when a new Appointment is created vs an existing one is saved since this function gets executed on both the creation of a new appointment and the save of an existing.
Your help in determining how to execute custom logic only on the save of an existing appointment and have it triggered only once would be appreciated.
Thanks!
Vijay
private
object
_cachedOldValue;
private
bool
_isValidValue;
private
void
radGridViewIssues_CellValidating(
object
sender, CellValidatingEventArgs e)
{
_isValidValue =
true
;
RadGridView radGridView = sender
as
RadGridView;
if
(radGridView ==
null
|| !radGridView.IsInEditMode)
{
return
;
}
ValidationResult validationResult = _presenter.ValidateCurrentValue(e.Column.Name, e.Value);
if
(!validationResult)
{
_isValidValue =
false
;
_cachedOldValue = e.OldValue;
}
}
private
void
radGridViewIssues_CellValidated(
object
sender, CellValidatedEventArgs e)
{
RadGridView radGridView = sender
as
RadGridView;
if
(radGridView ==
null
)
{
return
;
}
if
(!_isValidValue)
{
radGridView.CurrentCell.Value = _cachedOldValue;
}
}
System.NullReferenceException was unhandled
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=ProductPricingModeller.WinForms
StackTrace:
at ProductPricingModeller.WinForms.UseCurrentPriceHeaderCellElement.GridControl_ValueChanged(Object sender, EventArgs e) in E:\CODE\JssProductPricingModeller\ProductPricingModeller.WinForms\UseCurrentPriceHeaderCellElement.vb:line 201
at System.EventHandler.Invoke(Object sender, EventArgs e)
at Telerik.WinControls.UI.RadGridView.OnValueChanged(Object sender, EventArgs e)
at Telerik.WinControls.UI.EventDispatcher.RaiseEvent[T](Object eventKey, Object sender, T args)
at Telerik.WinControls.UI.BaseGridEditor.OnValueChanged()
at Telerik.WinControls.UI.RadCheckBoxEditor.SetValue(Object value)
at Telerik.WinControls.UI.RadCheckBoxEditor.set_Value(Object value)
at Telerik.WinControls.UI.RadCheckBoxEditor.ToggleState()
at Telerik.WinControls.UI.RadCheckBoxEditorElement.OnMouseUp(MouseEventArgs e)
at Telerik.WinControls.RadElement.OnCLREventsRise(RoutedEventArgs args)
at Telerik.WinControls.RadElement.OnBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadItem.OnBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e)
at Telerik.WinControls.RadElement.CallDoMouseUp(MouseEventArgs e)
at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e)
at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e)
at Telerik.WinControls.UI.RadGridView.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at Telerik.WinControls.RadControl.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(ApplicationContext context)
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
at ProductPricingModeller.WinForms.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
I’ve got a problem with the RadSpellChecker in VB
After calling “RadSpellChecker1.Check” with a standard “RadTextBoxControl”, pressing the ignore button repeatedly checks the first misspelled word and does not progress through the check. It does not move on to the next misspelt word and effectively loops.
If I change words I can get to the end of the check, cancel quits the check but ignore does appear to work as I expect
Has anyone seen this before and can suggest a solution