2017-05-28 100 views
0

今天我想在几个DataGridView集合中添加一个100列左右的选项。我想我可以手动编辑窗体的Designer.vb文件来复制和粘贴选项,但我很快意识到这不是一件容易的事情,因为选项包含了列的名称,所以它不是我可以只是粘贴进来。我可以更改designer.vb中的代码以使用With/End With?

我选择更改代码以使用With/End With,但是这样做后,我在设计器中遇到了一堆错误,表示“变量'VB $ t_ref $ L0'要么未声明或从来没有分配(即从L0到L99)我做了一些研究,并得知这个变量不是我在VB代码中找到的,但实际上是它的编译版本。前代码:

Me.DataMatchesHomePlayerID.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells 
Me.DataMatchesHomePlayerID.HeaderText = "Home Player ID" 
Me.DataMatchesHomePlayerID.Name = "DataMatchesHomePlayerID" 
Me.DataMatchesHomePlayerID.Width = 144 

下面的代码后:

With Me.DataMatchesHomePlayerID 
    .AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells 
    .HeaderText = "Home Player ID" 
    .Name = "DataMatchesHomePlayerID" 
    .Width = 144 
End With 

我不明白的是为什么这没有奏效。我不应该在Designer.vb中使用With/End With吗?如果它有帮助,我添加的行是第一个(.AutoSizeMode)。

让我知道你是否需要额外的信息来帮助我解决这个问题。我真的只需要知道是否可以完成将Designer.vb中的所有代码转换为使用With/End With。

谢谢!

+2

注意文件顶部附近的注释部分'......不要使用代码编辑器修改它.'无论您做什么,IDE都会在您进行更改时重写文件 – Plutonix

+0

@Plutonix在点上。设计者代码具有编写您的编程代码的自己的语法。它正在创建和阅读其内容,就像您将为应用程序编写和读取配置文件一样。您可以编辑designer.vb,但必须使用与设计器相同的语法。 – Luke

+0

另外:有些情况下,由于Visual Studio中的错误,您必须编辑designer.vb。例如:如果您在您的资源文件夹中存储的Picturebox中使用图像,然后删除该资源的图像,设计师将无法加载,因为它不会删除图像。它会完全崩溃你的表单。只有出路:转到设计器文件并将Picturebox.Image更改为Nothing,而不是对Ressources Image的引用。 (发生在VS 2013 Ultimate的我) – Luke

回答

0

我注意到了Plutonix的建议,并从Designer.vb文件中删除了With/End With's。

也为卢克提供了一些有趣的见解,为什么这是事实!

相关问题