public void TestComboBoxEx32TextChangeEvent()
        {
            NativeComboBox combo = new NativeComboBox(testDlg.IdentifyFromDialogId(1007));

            //イベント発生テスト。
            //CBN_EDITCHANGEが発生すること。
            combo.EmulateSelectItem(0);
            Assert.IsTrue(EventChecker.IsSameTestEvent(testDlg,
               delegate { combo.EmulateChangeEditText("abc"); },
                //無視。
                CreateIgnorMessage(1007, new CodeInfo(1007, NativeMethods.WM_COMMAND, CBN_SELENDCANCEL)),
                //期待値。
                new CodeInfo(1007, NativeMethods.WM_COMMAND, CBN_EDITCHANGE)));
            combo.EmulateChangeEditText(string.Empty);
        }
 public void TestComboBoxEx32SelectItemEventAsync()
 {
     //ComboEx32 CBN_SELCHANGE、CBN_EDITCHANGEのイベントでメッセージボックスが出るのでそれを閉じる。
     NativeComboBox combo = new NativeComboBox(testDlg.IdentifyFromDialogId(1009));
     Async async = new Async();
     combo.EmulateSelectItem(2, async);
     Assert.IsTrue(0 < MessageBoxUtility.CloseAll(testDlg, async));
 }
 public void TestComboBoxSelectItemEventAsync()
 {
     //非同期実行ができること。CBN_SELCHANGEのイベントでメッセージボックスが表示されるのでそれを閉じる。
     NativeComboBox combo = new NativeComboBox(testDlg.IdentifyFromDialogId(1008));
     Async async = new Async();
     combo.EmulateSelectItem(1, async);
     Assert.IsTrue(0 < MessageBoxUtility.CloseAll(testDlg, async));
 }
        public void TestComboBoxEx32DropDownListSelectItemEvent()
        {
            NativeComboBox combo = new NativeComboBox(testDlg.IdentifyFromDialogId(1010));

            //イベント発生テスト。指定の状態と現在の状態が同じ場合はイベントの通知は発生しない。
            //それ以外はCBN_SELENDOK,CBN_SELCHANGEが発生すること。
            combo.EmulateSelectItem(0);
            Assert.IsTrue(EventChecker.IsSameTestEvent(testDlg,
                delegate { combo.EmulateSelectItem(1); },
                //無視。
                CreateIgnorMessage(1010, new CodeInfo(1010, NativeMethods.WM_COMMAND, CBN_SELENDCANCEL)),
                //期待値。
                new CodeInfo(1010, NativeMethods.WM_COMMAND, CBN_SELENDOK),
                new CodeInfo(1010, NativeMethods.WM_COMMAND, CBN_SELCHANGE)));

            Assert.IsTrue(EventChecker.IsSameTestEvent(testDlg,
                delegate { combo.EmulateSelectItem(1); },
                //無視。
                CreateIgnorMessage(1010, new CodeInfo(1010, NativeMethods.WM_COMMAND, CBN_SELENDCANCEL)),
                //期待値。
                new CodeInfo[0]
            ));
        }
        public void TestText()
        {
            NativeComboBox[] combos = new NativeComboBox[]{
                new NativeComboBox(testDlg.IdentifyFromDialogId(1006)),
                new NativeComboBox(testDlg.IdentifyFromDialogId(1007))
            };
            foreach (NativeComboBox combo in combos)
            {
                combo.EmulateChangeEditText("123");
                Assert.AreEqual("123", combo.Text);

                //非同期でも同様の効果があることを確認。
                Async a = new Async();
                combo.EmulateChangeEditText("abcd", a);
                while (!a.IsCompleted)
                {
                    Thread.Sleep(10);
                }
                Assert.AreEqual("abcd", combo.Text);
            }
            //ドロップダウン形式の場合。
            NativeComboBox exDropDown = new NativeComboBox(testDlg.IdentifyFromDialogId(1010));
            exDropDown.EmulateSelectItem(1);
            Assert.AreEqual("b", exDropDown.Text);
        }
 public void TestConstructor()
 {
     //WindowControlから作成。
     {
         NativeComboBox combo = new NativeComboBox(testDlg.IdentifyFromDialogId(1006));
         combo.EmulateSelectItem(1);
         Assert.AreEqual(1, combo.SelectedItemIndex);
     }
     //ハンドルから作成。
     {
         NativeComboBox combo = new NativeComboBox(app, testDlg.IdentifyFromDialogId(1006).Handle);
         combo.EmulateSelectItem(1);
         Assert.AreEqual(1, combo.SelectedItemIndex);
     }
 }