We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Bug with Autocomplete ProcessAutoComplete when the related textbox do not have focus

In the submitted code the autocomplete ProcessAutoComplete method generates the exception below when the TextBox doesn’t have focus. In project sample you can recreate the exception by pressing the form button you can avoid the exception by uncomment the row 18 of the files form1.cs (set the focus first).

Is their a way to call autoComplete.ProcessAutoComplete method without having the focus on the field?

What mean the exception generated?

Exception generated:

System.ArgumentNullException was unhandled
Message="Key cannot be null.\rParameter name: key"
Source="Syncfusion.Tools.Windows"
ParamName="key"
StackTrace:
at Syncfusion.Windows.Forms.Tools.AutoComplete.GetControlAutoMode()
at Syncfusion.Windows.Forms.Tools.AutoComplete.ProcessAutoComplete(String currentText, String selectedEntry, Point location)
at Syncfusion.Windows.Forms.Tools.AutoComplete.ProcessAutoComplete(String currentText)
at WindowsApplication1.AutoCompleteTextBox.ShowAutoComplete() in C:etSamples\AutocompleteBug\WindowsApplication1\AutoCompleteTextBox.cs:line 42
at WindowsApplication1.Form1.button1_Click(Object sender, EventArgs e) in C:etSamples\AutocompleteBug\WindowsApplication1\Form1.cs:line 19
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.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(Int32 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(Form mainForm)
at WindowsApplication1.Program.Main() in C:etSamples\AutocompleteBug\WindowsApplication1\Program.cs:line 14
at System.AppDomain.nExecuteAssembly(Assembly 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.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()


AutocompleteBug.zip

4 Replies

AR Anupama Roy Syncfusion Team September 27, 2006 05:02 PM UTC

Hi Oleg,

You can set the TextBox to be the ActiveFocusControl of AutoComplete and can have AutoCompletion even if the TextBox does not have focus.

Code:

public void ShowAutoComplete()
{
this._autoComplete.ActiveFocusControl = this;
this._autoComplete.ProcessAutoComplete(this.Text);

}

Do let us know if you need furthur assistance.

Thanks,

Anu.


BM Benoit Marsot October 11, 2006 09:31 PM UTC

Hi,
We try your suggested solution and the behavior is even worst forbidding the access of the AutoComplete unless the mouse is used.

Any suggestion?

Please can you indicated why and/or what is not supposed to be null.

The program implementing your suggestion has been put in attachment.


SetActiveFocus.zip


BM Benoit Marsot October 11, 2006 10:20 PM UTC

FYI:
I am using:
VS 2005
.net 2.0
Syncfusion 4.3.0.30


AR Anupama Roy Syncfusion Team October 12, 2006 07:37 AM UTC

Hi Benoit,


Whenever a control on a form having AutoComplete component is activated,the AutoCompleteMode needs to be checked so as to autoComplete the text.Inorder to get the AutoCompleteMode for a particular control,it will look whether it has the active focus currently.AutoComplete will not know in which mode it has to AutoComplete as the ActiveFocusControl is null and it will throw NullReferenceException.This was the reason why i suggested to set the ActiveFocusControl property.

Earlier you had mentioned that inorder to reproduce the exception,form button needs to be pressed.I followed the same and while debugging through the source also,I could see that the value in the TextBox is passed correctly to AutoComplete and it did not throw the exception.

Thanks,

Anu.


Loader.
Live Chat Icon For mobile
Up arrow icon