示例#1
0
        /// <summary>
        /// 非同期処理からメッセージボックスを表示する(Win)。
        /// </summary>
        /// <param name="messageBoxText">メッセージ テキスト</param>
        /// <param name="caption">Caption</param>
        /// <param name="button">表示するボタン</param>
        /// <param name="icon">表示するアイコン</param>
        /// <returns>MessageBoxResult</returns>
        /// <remarks>主スレッドで表示するメッセージボックスを呼び出す)</remarks>
        public DialogResult ShowAsyncMessageBoxWin(string messageBoxText, string caption, MessageBoxButtons button, MessageBoxIcon icon)
        {
            // 非同期処理からメッセージボックスを表示するメソッドのdelegate
            ShowAsyncMessageBoxDelegateWin showAsyncMessageBoxDelegateWPF
                = new ShowAsyncMessageBoxDelegateWin(this._ShowAsyncMessageBoxWin);

            // 引数の作成
            object[] args = new object[] { messageBoxText, caption, button, icon };

            // オブジェクトの型によって振り分け
            if (this.thisWinForm != null)
            {
                // 副スレッドなので、Dispatcher.Invokeを経由して主スレッドで呼び出す。
                if (this.thisWinForm.IsDisposed)
                {
                    // Closeされた
                    return(DialogResult.None);
                }
                else
                {
                    // Closeされていない
                    return((DialogResult)this.thisWinForm.Invoke(showAsyncMessageBoxDelegateWPF, args));
                }
            }
            else
            {
                // 型の不一致
                throw new FrameworkException(
                          FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[0],
                          FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[1]);
            }
        }
示例#2
0
        /// <summary>
        /// 非同期処理からメッセージボックスを表示する(Win)。
        /// </summary>
        /// <param name="messageBoxText">メッセージ テキスト</param>
        /// <param name="caption">Caption</param>
        /// <param name="button">表示するボタン</param>
        /// <param name="icon">表示するアイコン</param>
        /// <returns>MessageBoxResult</returns>
        /// <remarks>主スレッドで表示するメッセージボックスを呼び出す)</remarks>
        public DialogResult ShowAsyncMessageBoxWin(string messageBoxText, string caption, MessageBoxButtons button, MessageBoxIcon icon)
        {
            // 非同期処理からメッセージボックスを表示するメソッドのdelegate
            ShowAsyncMessageBoxDelegateWin showAsyncMessageBoxDelegateWPF
                = new ShowAsyncMessageBoxDelegateWin(this._ShowAsyncMessageBoxWin);

            // 引数の作成
            object[] args = new object[] { messageBoxText, caption, button, icon };

            // オブジェクトの型によって振り分け
            if (this.thisWinForm != null)
            {
                // 副スレッドなので、Dispatcher.Invokeを経由して主スレッドで呼び出す。
                if (this.thisWinForm.IsDisposed)
                {
                    // Closeされた
                    return DialogResult.None;
                }
                else
                {
                    // Closeされていない
                    return (DialogResult)this.thisWinForm.Invoke(showAsyncMessageBoxDelegateWPF, args);
                }
            }
            else
            {
                // 型の不一致
                throw new FrameworkException(
                    FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[0],
                    FrameworkExceptionMessage.ASYNC_MSGBOX_ERROR[1]);
            }
        }