Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当InputBox打开时Excel无响应,c_C#_Excel_Excel Addins_Inputbox - Fatal编程技术网

C# 当InputBox打开时Excel无响应,c

C# 当InputBox打开时Excel无响应,c,c#,excel,excel-addins,inputbox,C#,Excel,Excel Addins,Inputbox,我正在使用c构建一个excel加载项,我希望用户选择一个范围。 我已经设置了输入框,当它作为文本输入时,它将接收范围精细。 问题是,当inputbox打开时,excel没有响应,用户无法转到excel并用鼠标选择范围,在我停止调试后,我会收到一条消息,说明文件现在可用 这是代码的一部分 Excel.Range str = excelApp.InputBox("Select table range", "", _ Type.Missing, Type.Missing, Type.Missing,

我正在使用c构建一个excel加载项,我希望用户选择一个范围。 我已经设置了输入框,当它作为文本输入时,它将接收范围精细。 问题是,当inputbox打开时,excel没有响应,用户无法转到excel并用鼠标选择范围,在我停止调试后,我会收到一条消息,说明文件现在可用

这是代码的一部分

Excel.Range str = excelApp.InputBox("Select table range", "", _ 
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 8);
MessageBox.Show("range = " + this.range.get_Address());
看看这个:


如果你需要,我可以更新代码。请先试一试。

这完全是根据设计和任何Windows用户界面的标准。InputBox函数显示一个模式对话框。对话框始终禁用应用程序中的其他窗口。非常烦人,但这是一项重要的安全措施,可防止因再次进入而出现问题。解释了模态对话框为何会有这种行为


您将不得不编写自己的非模态输入表单来绕过该限制。注意你可能遇到的麻烦,如链接的答案所示。用户关闭ui的问题不会让您有太多的担心,这也会扼杀表单。但肯定是用户重新发出了命令问题。

您的意思是,如果您在输入框中键入范围值,它会工作,但如果您想使用鼠标进行选择,则它不会工作?几乎准确地说,当我键入范围值时,它会工作。我无法使用鼠标进行选择,就像excel被卡住了一样,没有任何响应。您可以在excel中尝试此操作吗?意思是使用按钮,在excel模块中的输入框中尝试从excel中选择范围?所以,你可以缩小范围,如果这是一个互操作问题或只是Excel问题。我真的不知道如何做你说的。当我使用一个简单的函数时,我可以选择一个范围。我不知道如何在excel中创建InputBox,我的意思是在excel vba中进行一个简单的测试,以缩小问题的范围。我现在不在机器前面。但您可以尝试此链接获取一个小的vba代码段,以测试excel环境中的任何顽固行为。将此代码放入vba模块并编译。如果你有什么问题,我可以在回到机器前帮你……或者只是希望其他人能帮你。对不起,这是对我挠头的更好的解释。希望它对格林彼得有用。我很想知道这是否解决了这个问题,因为他目前的代码看起来没有问题我想我理解这个问题,但我并不真正理解我需要做什么来解决它。我是一个初学者,希望能有更多的指导。不要解决它,用户熟悉对话框的工作方式。谢谢,这远远超过我的水平,我是一个完全的初学者。对于我提供的链接,教程就在那里-当你尝试某些事情时,你可以得到很多乐趣:D取决于你有多少时间。最重要的是,你有没有设法解决你的问题?如何解决?没有,没有解决。不幸的是,我现在没有太多时间做这件事。