Почему моя форма теряет свой модальный диалог после переключения в Excel Interop? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь выполнить управление RedEdit в приложении VSTO, используя приведенный ниже код

            System.Drawing.Size windowSize = form.Size;
            form.Size = SystemInformation.MinimumWindowSize;
            System.Drawing.Point location = form.Location;
            SetFormPositionForInputBox(form);

            string rangeAddress = string.Empty;
            Excel.Range range = null;
            try
            {
                range = Globals.ThisAddIn.Application.InputBox(prompt, title, Type.Missing, Type.Missing,
                                        Type.Missing, Type.Missing, Type.Missing, 8) as Excel.Range;

                if (range != null)
                    rangeAddress = range.get_AddressLocal(Office.MsoTriState.msoFalse,
                                                          Office.MsoTriState.msoFalse,
                                                          Excel.XlReferenceStyle.xlA1,
                                                          Office.MsoTriState.msoFalse,
                                                          Type.Missing);

            }
            catch
            {
                form.Close();
                throw new Exception("An error occured when selecting the range.");
            }
            finally
            {
                form.Location = location;
                form.Size = windowSize;
                //  MRCO(range);
            }
            return rangeAddress;

Все работает нормально, показывает окно ввода и получает адрес, однако после получения адреса его уже нетмодальная форма (ShowDialog).Любые предложения, чтобы избежать этого или у кого-то есть лучший подход для реализации RefEdit в VSTO?

...