为啥Visual Studio在声明字符串数组列表时会抛出异常

Posted

技术标签:

【中文标题】为啥Visual Studio在声明字符串数组列表时会抛出异常【英文标题】:Why does Visual Studio throw an exception when declaring a list of string array为什么Visual Studio在声明字符串数组列表时会抛出异常 【发布时间】:2020-07-29 19:52:27 【问题描述】:

我不认识伙计们,但 Visual Studio 刚开始表现得很疯狂,我的代码工作正常我只是在列表视图中添加了一列添加一行代码测试了一些东西,然后重新加载项目而不保存它(只是为了恢复项目到最后一个状态)但是现在当我加载项目并开始调试时,我在表单上声明变量时遇到异常,我什至没有加载它,我的项目结构是这样的:

                              |<Settings
Splash screen --> Main Form --><Equalizer
                              |<Tags

上面的意思是我的项目从启动画面开始,3秒后它加载主窗体,它就像应用程序的家,然后你可以从那里做常规媒体播放器的东西,也可以调用其他三个窗体 settings,均衡器和标签,所以当我启动项目时,启动画面正常加载,第二次尝试调用主窗体时,它会在这段代码中引发异常

Dim extendedinfoarray As New List(Of String())

这是异常信息:

发生 System.ArgumentOutOfRangeException HResult=-2146233086 Message=DisplayIndex 值超出范围。值必须大于或等于 0 且小于或等于列数减 1。 参数名称:DisplayIndex 参数名称=显示索引 Source=System.Windows.Forms

堆栈跟踪:

在 System.Windows.Forms.ColumnHeader.set_DisplayIndex(Int32 值) 在 D:\Visual Studio Project Files\MediaPlayerFullFormProj\MediaPlayerFullFormProj\TaggingForm.Designer.vb:line 1668 中的 MrAudio.TaggingForm.InitializeComponent() 在 D:\Visual Studio Project Files\MediaPlayerFullFormProj\MediaPlayerFullFormProj\TaggingForm.vb:line 8 中的 MrAudio.TaggingForm..ctor() 处

我正在使用 .NET 4.6.1

那么是什么导致 Visual Studio 开始抛出这样的随机异常,我认为在声明变量时它不能抛出异常。可以吗?

提前致谢,

PS:如果我没有提供足够的详细信息,这是我在 *** 上的第一个问题。

【问题讨论】:

这个问题似乎与该集合没有任何关系。它似乎与使用无效的DisplayIndexListView 添加列有关。查看该表单上的ListView 把spalsh屏幕作为启动窗体是错误的。 VB.NET WinForms 中内置了闪屏功能。将主窗体设为启动窗体,并选择闪屏作为闪屏。有趣的是它是如何工作的。 我不知道为什么,但是当我添加另一个列并更改其排列时导致该异常现在我重新排列它并且问题已解决,谢谢 那么我现在与该帖子有什么关系?您可以将您的答案作为答案发布,以便我可以选择它作为答案 我的评论不是答案。这只是一个让你得到答案的指针。您从中为自己制定了解决方案,因此您应该发布自己的答案并接受它。我不确定您是否需要最低声望才能做到这一点。 【参考方案1】:

问题与ListView本身有关,删除一列后,再添加一列再排列会导致这个问题

快速修复:

编辑表单设计器文件搜索 ListView 设置部分将列排列更改为正确的列,或删除所有列,编译并启动,然后再次添加这些列,这应该可以解决问题。

【讨论】:

以上是关于为啥Visual Studio在声明字符串数组列表时会抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Visual Studio 将新创建的数组键入为 Nullable?

为啥 Visual Studio 将新创建的数组键入为 Nullable?

Visual Studio,错误:在数组声明中使用 #define 常量时,应为“]”

Visual Studio C# Watch 窗口和数组

Visual Studio C++字符串比较没有声明[重复]

为啥visual studio2012在新建c++项目的时候会出现这个对话框?