2 // Copyright (c) 2005 Novell, Inc.
5 // Ritvik Mayank (mritvik@novell.com)
10 using System.Windows.Forms;
12 using System.Collections;
13 using System.ComponentModel;
14 using System.Threading;
15 using Timer = System.Windows.Forms.Timer;
16 using System.Globalization;
18 namespace MonoTests.System.Windows.Forms
21 public class FormEvent : TestHelper
23 static bool eventhandled = false;
24 public void New_EventHandler (object sender, EventArgs e)
32 protected override void TearDown ()
40 public void Activated ()
42 if (TestHelper.RunningOnUnix)
43 Assert.Ignore ("#3 fails");
46 EventLogger logger = new EventLogger (_form);
47 _form.ShowInTaskbar = false;
48 Assert.AreEqual (0, logger.CountEvents ("Activated"), "#1");
50 Application.DoEvents ();
51 Assert.AreEqual (0, logger.CountEvents ("Activated"), "#2");
53 Application.DoEvents ();
54 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#3");
56 Application.DoEvents ();
57 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#4");
59 Application.DoEvents ();
60 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#5");
62 Application.DoEvents ();
63 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#6");
65 Application.DoEvents ();
66 Assert.AreEqual (2, logger.CountEvents ("Activated"), "#7");
70 public void Activated_Dialog ()
72 if (TestHelper.RunningOnUnix)
73 Assert.Ignore ("#4 fails");
75 _form = new DelayedCloseForm ();
76 EventLogger logger = new EventLogger (_form);
77 _form.ShowInTaskbar = false;
78 Assert.AreEqual (0, logger.CountEvents ("Activated"), "#1");
80 Assert.AreEqual (0, logger.CountEvents ("Activated"), "#2");
82 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#3");
84 Assert.AreEqual (2, logger.CountEvents ("Activated"), "#4");
91 EventLogger logger = new EventLogger (_form);
92 _form.ShowInTaskbar = false;
94 Application.DoEvents ();
95 Assert.AreEqual (0, logger.CountEvents ("Closed"), "#1");
97 Application.DoEvents ();
98 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#2");
100 Application.DoEvents ();
101 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#3");
105 public void Closed_Dialog ()
107 _form = new DelayedCloseForm ();
108 EventLogger logger = new EventLogger (_form);
109 _form.ShowInTaskbar = false;
111 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#1");
113 Assert.AreEqual (2, logger.CountEvents ("Closed"), "#2");
115 Application.DoEvents ();
116 Assert.AreEqual (2, logger.CountEvents ("Closed"), "#3");
120 public void Closing ()
123 EventLogger logger = new EventLogger (_form);
124 _form.ShowInTaskbar = false;
126 Application.DoEvents ();
127 Assert.AreEqual (0, logger.CountEvents ("Closing"), "#1");
129 Application.DoEvents ();
130 Assert.AreEqual (1, logger.CountEvents ("Closing"), "#2");
134 public void Closing_Dialog ()
136 _form = new DelayedCloseForm ();
137 EventLogger logger = new EventLogger (_form);
138 _form.ShowInTaskbar = false;
140 Assert.AreEqual (1, logger.CountEvents ("Closing"), "#1");
142 Assert.AreEqual (2, logger.CountEvents ("Closing"), "#2");
144 Application.DoEvents ();
145 Assert.AreEqual (2, logger.CountEvents ("Closing"), "#3");
149 public void Deactivate ()
151 if (TestHelper.RunningOnUnix)
152 Assert.Ignore ("#3 or #5 fail");
155 EventLogger logger = new EventLogger (_form);
156 _form.ShowInTaskbar = false;
158 Application.DoEvents ();
159 Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#1");
161 Application.DoEvents ();
162 Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#2");
164 Application.DoEvents ();
165 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#3");
167 Application.DoEvents ();
168 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#4");
170 Application.DoEvents ();
171 Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#5");
173 Application.DoEvents ();
174 Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#6");
176 Application.DoEvents ();
177 Assert.AreEqual (2, logger.CountEvents ("Deactivate"), "#7");
181 public void Deactivate_Dialog ()
183 if (TestHelper.RunningOnUnix)
184 Assert.Ignore ("#2 sometimes fails");
186 _form = new DelayedCloseForm ();
187 EventLogger logger = new EventLogger (_form);
188 _form.ShowInTaskbar = false;
190 Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#1");
192 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#2");
194 Application.DoEvents ();
195 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#3");
198 [Test] // bug #413898
199 public void EventOrder ()
201 if (TestHelper.RunningOnUnix)
202 Assert.Ignore ("#A3 fails");
204 string [] expectedEvents_Show = {
210 string [] expectedEvents_Close = {
225 EventLogger logger = new EventLogger (_form);
228 Application.DoEvents ();
230 Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents_Show), "#A1:" + logger.EventsJoined());
231 Assert.AreEqual (1, logger.CountEvents ("Load"), "#A2");
232 Assert.AreEqual (1, logger.CountEvents ("VisibleChanged"), "#A3");
233 Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#A4");
234 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#A5");
235 Assert.AreEqual (0, logger.CountEvents ("Closing"), "#A6");
237 Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#A7");
239 Assert.AreEqual (0, logger.CountEvents ("Closed"), "#A8");
241 Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#A9");
243 Assert.AreEqual (0, logger.CountEvents ("Deactivate"), "#A10");
244 Assert.AreEqual (0, logger.CountEvents ("LostFocus"), "#A11");
245 Assert.AreEqual (0, logger.CountEvents ("HandleDestroyed"), "#A12");
246 Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#A13");
250 Application.DoEvents ();
252 Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents_Close), "#B1:" + logger.EventsJoined ());
253 Assert.AreEqual (0, logger.CountEvents ("Load"), "#B2");
254 Assert.AreEqual (0, logger.CountEvents ("VisibleChanged"), "#B3");
255 Assert.AreEqual (0, logger.CountEvents ("GotFocus"), "#B4");
256 Assert.AreEqual (0, logger.CountEvents ("Activated"), "#B5");
257 Assert.AreEqual (1, logger.CountEvents ("Closing"), "#B6");
259 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#B7");
261 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#B8");
263 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#B9");
265 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#B10");
266 Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#B11");
267 Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#B12");
268 Assert.AreEqual (1, logger.CountEvents ("Disposed"), "#B13");
271 [Test] // bug #413898
272 public void EventOrder_Dialog ()
274 if (TestHelper.RunningOnUnix)
275 Assert.Ignore ("#A3 fails");
277 string [] expectedEvents = {
295 _form = new DelayedCloseForm ();
296 EventLogger logger = new EventLogger (_form);
299 Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents), "#A1:" + logger.EventsJoined ());
300 Assert.AreEqual (1, logger.CountEvents ("Load"), "#A2");
301 Assert.AreEqual (2, logger.CountEvents ("VisibleChanged"), "#A3");
302 Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#A4");
303 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#A5");
304 Assert.AreEqual (1, logger.CountEvents ("Closing"), "#A6");
306 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#A7");
308 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#A8");
310 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#A9");
312 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#A10");
313 Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#A11");
314 Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#A12");
315 Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#A13");
320 Assert.IsTrue (logger.ContainsEventsOrdered (expectedEvents), "#B1:" + logger.EventsJoined ());
321 Assert.AreEqual (1, logger.CountEvents ("Load"), "#B2");
322 Assert.AreEqual (2, logger.CountEvents ("VisibleChanged"), "#B3");
323 Assert.AreEqual (1, logger.CountEvents ("GotFocus"), "#B4");
324 Assert.AreEqual (1, logger.CountEvents ("Activated"), "#B5");
325 Assert.AreEqual (1, logger.CountEvents ("Closing"), "#B6");
327 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#B7");
329 Assert.AreEqual (1, logger.CountEvents ("Closed"), "#B8");
331 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#B9");
333 Assert.AreEqual (1, logger.CountEvents ("Deactivate"), "#B10");
334 Assert.AreEqual (1, logger.CountEvents ("LostFocus"), "#B11");
335 Assert.AreEqual (1, logger.CountEvents ("HandleDestroyed"), "#B12");
336 Assert.AreEqual (0, logger.CountEvents ("Disposed"), "#B13");
341 public void FormClosed ()
344 EventLogger logger = new EventLogger (_form);
345 _form.ShowInTaskbar = false;
346 Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#1");
348 Application.DoEvents ();
349 Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#2");
351 Application.DoEvents ();
352 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#3");
354 Application.DoEvents ();
355 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#4");
357 Application.DoEvents ();
358 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#5");
362 public void FormClosed_Dialog ()
364 _form = new DelayedCloseForm ();
365 EventLogger logger = new EventLogger (_form);
366 _form.ShowInTaskbar = false;
367 Assert.AreEqual (0, logger.CountEvents ("FormClosed"), "#1");
369 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#2");
371 Application.DoEvents ();
372 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#3");
374 Application.DoEvents ();
375 Assert.AreEqual (1, logger.CountEvents ("FormClosed"), "#4");
379 public void FormClosing ()
382 EventLogger logger = new EventLogger (_form);
383 _form.ShowInTaskbar = false;
384 Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#1");
386 Application.DoEvents ();
387 Assert.AreEqual (0, logger.CountEvents ("FormClosing"), "#2");
389 Application.DoEvents ();
390 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#3");
392 Application.DoEvents ();
393 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#4");
395 Application.DoEvents ();
396 Assert.AreEqual (1, logger.CountEvents ("FormClosing"), "#5");
400 public void FormClosing_Dialog ()
402 _form = new DelayedCloseForm ();
403 EventLogger logger = new EventLogger (_form);
404 _form.ShowInTaskbar = false;
405 Assert.AreEqual (0, logger.CountEvents ("FormClosing"));
407 Assert.AreEqual (1, logger.CountEvents ("FormClosing"));
409 Assert.AreEqual (2, logger.CountEvents ("FormClosing"));
417 EventLogger logger = new EventLogger (_form);
418 _form.ShowInTaskbar = false;
419 Assert.AreEqual (0, logger.CountEvents ("Load"), "#1");
421 Assert.AreEqual (1, logger.CountEvents ("Load"), "#2");
423 Assert.AreEqual (1, logger.CountEvents ("Load"), "#3");
425 Assert.AreEqual (1, logger.CountEvents ("Load"), "#4");
427 Assert.AreEqual (1, logger.CountEvents ("Load"), "#5");
431 public void Load_Dialog ()
433 _form = new DelayedCloseForm ();
434 EventLogger logger = new EventLogger (_form);
435 _form.ShowInTaskbar = false;
436 Assert.AreEqual (0, logger.CountEvents ("Load"), "#1");
438 Assert.AreEqual (1, logger.CountEvents ("Load"), "#2");
440 Assert.AreEqual (2, logger.CountEvents ("Load"), "#3");
448 EventLogger logger = new EventLogger (_form);
449 //_form.ShowInTaskbar = false;
450 Assert.AreEqual (0, logger.CountEvents ("Shown"), "#1");
452 Application.DoEvents ();
453 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#2");
455 Application.DoEvents ();
456 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#3");
458 Application.DoEvents ();
459 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#4");
461 Application.DoEvents ();
462 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#5");
464 Application.DoEvents ();
465 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#6");
469 public void Shown_Dialog ()
471 _form = new DelayedCloseForm ();
472 EventLogger logger = new EventLogger (_form);
473 _form.ShowInTaskbar = false;
474 Assert.AreEqual (0, logger.CountEvents ("Shown"), "#1");
476 Assert.AreEqual (1, logger.CountEvents ("Shown"), "#2");
478 Assert.AreEqual (2, logger.CountEvents ("Shown"), "#3");
483 public void VisibleChangedEvent ()
486 _form.VisibleChanged += new EventHandler (FormVisibleChangedHandler);
488 Control control1 = new Control ();
489 control1.Location = new Point (5, 5);
490 control1.VisibleChanged += new EventHandler (Control1VisibleChangedHandler);
491 control1_visiblechanged_count = 0;
493 Assert.AreEqual (true, control1.Visible, "#A1");
494 Assert.AreEqual (false, _form.Visible, "#A2");
496 // case one - change without being added to the form
497 control1.Visible = false;
498 Assert.AreEqual (false, control1.Visible, "#B1");
499 Assert.AreEqual (1, control1_visiblechanged_count, "#B2");
501 control1.Visible = true;
502 control1_visiblechanged_count = 0;
503 _form.Controls.Add (control1);
504 Assert.AreEqual (false, control1.Visible, "#C1");
505 Assert.AreEqual (1, control1_visiblechanged_count, "#C2");
507 // Add a second control that actually is not visible
508 Control control2 = new Control ();
509 control2.Visible = false;
510 _form.Controls.Add (control2);
512 control1_visiblechanged_count = control2_visiblechanged_count = form_visiblechanged_count = 0;
514 Assert.AreEqual (1, control1_visiblechanged_count, "#D1");
515 Assert.AreEqual (0, control2_visiblechanged_count, "#D2");
516 Assert.AreEqual (1, form_visiblechanged_count, "#D3");
521 int control1_visiblechanged_count;
522 int control2_visiblechanged_count;
523 int form_visiblechanged_count;
525 void Control1VisibleChangedHandler (object o, EventArgs args)
527 control1_visiblechanged_count++;
530 void FormVisibleChangedHandler (object o, EventArgs args)
532 form_visiblechanged_count++;
535 class DelayedCloseForm : Form
537 private Timer _timer;
539 public DelayedCloseForm ()
541 _timer = new Timer ();
542 _timer.Tick += new EventHandler (OnTick);
543 _timer.Interval = 50;
545 Closed += new EventHandler (OnClosed);
546 Load += new EventHandler (OnLoad);
549 void OnClosed (object sender, EventArgs e)
551 _timer.Enabled = false;
554 void OnLoad (object sender, EventArgs e)
556 _timer.Enabled = true;
559 void OnTick (object sender, EventArgs e)
562 Application.DoEvents ();
568 public void MaximizeBoundsTest ()
570 this.MaximizedBounds = new Rectangle (10,10,100,100);
575 public void MaximizedBoundsChangedTest ()
577 _form = new MyForm ();
578 _form.MaximizedBoundsChanged += new EventHandler (New_EventHandler);
579 eventhandled = false;
580 ((MyForm) _form).MaximizeBoundsTest ();
581 Assert.AreEqual (true, eventhandled, "#A5");
585 public void MaximumSizeChangedTest ()
588 _form.ShowInTaskbar = false;
589 _form.MaximumSizeChanged += new EventHandler (New_EventHandler);
590 eventhandled = false;
591 _form.MaximumSize = new Size (500, 500);
592 Assert.AreEqual (true, eventhandled, "#A6");
595 [Test, Ignore ("Manual Intervention")]
596 public void MdiChildActivateTest ()
598 Form parent = new Form ();
599 parent.ShowInTaskbar = false;
600 Form child = new Form ();
601 parent.IsMdiContainer = true;
602 child.IsMdiContainer = false;
603 child.MdiParent = parent;
604 parent.MdiChildActivate += new EventHandler (New_EventHandler);
605 eventhandled = false;
608 child.Visible = true;
610 Assert.AreEqual (true, eventhandled, "#A7");
611 eventhandled = false;
613 Assert.AreEqual (true, eventhandled, "#A8");
618 public void MinimumSizeChangedTest ()
621 _form.ShowInTaskbar = false;
622 _form.MinimumSizeChanged += new EventHandler (New_EventHandler);
623 eventhandled = false;
624 _form.MinimumSize = new Size(100, 100);
625 Assert.AreEqual (true, eventhandled, "#A10");
629 ** This next test is in response to a bug report
630 ** which pointed out that the idle events were being
631 ** sent to every thread rather than just the thread
632 ** they were assigned on.
634 ** Report: https://bugzilla.novell.com/show_bug.cgi?id=321541
636 private static Form form1_OneIdlePerThread = null;
637 private static Form form2_OneIdlePerThread = null;
638 private static int count1_OIPT = 0;
639 private static int count2_OIPT = 0;
640 private static ThreadStart OIPT_ThreadStart2;
641 private static Thread OIPT_Thread2;
642 private static int oipt_t1 = 0;
643 private static int oipt_t2 = 0;
645 [NUnit.Framework.Category ("NotWorking")]
646 public void OneIdlePerThread () {
647 Thread t = Thread.CurrentThread;
648 oipt_t1 = t.ManagedThreadId;
651 form1_OneIdlePerThread = new Form ();
652 form2_OneIdlePerThread = new Form ();
653 form1_OneIdlePerThread.Show ();
655 OIPT_ThreadStart2 = new ThreadStart (TIPT_Two);
656 OIPT_Thread2=new Thread (OIPT_ThreadStart2);
657 OIPT_Thread2.IsBackground = true;
658 OIPT_Thread2.SetApartmentState (ApartmentState.STA);
659 OIPT_Thread2.Start ();
660 Application.Idle += new EventHandler (TestIdlePerThread);
661 Application.Run (form1_OneIdlePerThread);
662 if (!OIPT_Thread2.Join (1000)){
663 OIPT_Thread2.Abort();
666 Assert.AreEqual (true, count1_OIPT == 1,
667 "#Idle: idle #1 hit too many times");
668 Assert.AreEqual (true, count2_OIPT == 1,
669 "#Idle: idle #2 hit too many times");
671 public static void TIPT_Two (){
672 Thread t = Thread.CurrentThread;
673 oipt_t2 = t.ManagedThreadId;
675 new EventHandler (TestIdlePerThread2);
676 Application.Run (form2_OneIdlePerThread);
678 public static void TestIdlePerThread (object o, EventArgs e) {
679 Thread t = Thread.CurrentThread;
682 new EventHandler (TestIdlePerThread);
683 /* Give thread2 time to finish before we close */
685 if (form1_OneIdlePerThread != null)
686 form1_OneIdlePerThread.Close ();
687 Assert.AreEqual (true, oipt_t1 == t.ManagedThreadId,
688 "#Idle:Wrong Thread-t1");
690 public static void TestIdlePerThread2 (object o, EventArgs e) {
691 Thread t = Thread.CurrentThread;
694 new EventHandler(TestIdlePerThread2);
695 if (form2_OneIdlePerThread != null)
696 form2_OneIdlePerThread.Invoke
697 (new MethodInvoker (form2_OneIdlePerThread.Close));
698 Assert.AreEqual (true, oipt_t2 == t.ManagedThreadId,
699 "#Idle:Wrong Thread-t2");
705 public class ClosingEvent
708 CancelEventArgs args = null;
709 public void Closing_Handler (object sender, CancelEventArgs e)
715 [Test, Ignore ("visual test")]
716 public void ClosingEventTest ()
718 Form myform = new Form ();
719 myform.ShowInTaskbar = false;
720 myform.Closing += new CancelEventHandler (Closing_Handler);
724 Assert.AreEqual (true, args != null, "#A11");
725 Assert.AreEqual (true, myform.Visible, "#A12");
729 Assert.AreEqual (true, args != null, "#A13");
730 Assert.AreEqual (false, myform.Visible, "#A14");
734 [TestFixture,Ignore ("Test Breaks")]
735 public class InputLanguageChangedEvent
737 static bool eventhandled = false;
738 public void InputLanguage_Handler (object sender,InputLanguageChangedEventArgs e)
744 public void InputLanguageChangedEventTest ()
746 Form myform = new Form ();
747 myform.ShowInTaskbar = false;
748 CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
749 CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
750 InputLanguage oldil = InputLanguage.CurrentInputLanguage;
752 if (InputLanguage.InstalledInputLanguages.Count > 1) {
753 InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
754 myform.InputLanguageChanged += new InputLanguageChangedEventHandler (InputLanguage_Handler);
755 Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
756 Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
757 InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
758 Assert.AreEqual (true, eventhandled, "#A15");
761 Thread.CurrentThread.CurrentCulture = oldci;
762 Thread.CurrentThread.CurrentUICulture = oldcui;
763 InputLanguage.CurrentInputLanguage = oldil;
769 [TestFixture,Ignore ("Test Breaks")]
770 public class InputLanguageChangingEvent
772 static bool eventhandled = false;
773 public void InputLangChanging_Handler(object sender,InputLanguageChangingEventArgs e)
779 public void InputLanguageChangingEventTest ()
781 Form myform = new Form ();
782 myform.ShowInTaskbar = false;
783 CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
784 CultureInfo oldcui = Thread.CurrentThread.CurrentUICulture;
785 InputLanguage oldil = InputLanguage.CurrentInputLanguage;
787 if (InputLanguage.InstalledInputLanguages.Count > 1)
789 InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[0];
790 myform.InputLanguageChanging += new InputLanguageChangingEventHandler (InputLangChanging_Handler);
791 Thread.CurrentThread.CurrentCulture = new CultureInfo ("ta-IN");
792 Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
793 InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[1];
794 Assert.AreEqual (true, eventhandled, "#A16");
797 Thread.CurrentThread.CurrentCulture = oldci;
798 Thread.CurrentThread.CurrentUICulture = oldcui;
799 InputLanguage.CurrentInputLanguage = oldil;