Resources.Designer.vb

时间:2016-04-06 08:48:58

标签: .net vb.net visual-studio-2013

我正在使用imagecolumn编写基于DataGridView的Windows-Forms-Application。它基本上只显示来自数据库的信息。以下代码用于显示图像(用于工作):

            for each row as datarow in dt.rows

                'Some code ....
              With gridRow                    

                'Picture
                If row.Item("img_ID").ToString = "0" Then
                    .Cells(0).Value = Nothing
                ElseIf row.Item("img_ID").ToString = "1" Then
                    .Cells(0).Value = My.Resources.icon11
                ElseIf row.Item("img_ID").ToString = "2" Then
                    .Cells(0).Value = My.Resources.icon2__2_
                Else
                    .Cells(0).Value = Nothing
                End If

                ' Some Other Code 
              End With
            Next

此代码导致Resources.Designer.vb

中的错误

Google-Translator-English中的附加信息部分:

(Ein Aufrufziel hat einen Ausnahmefehler verursacht。)

呼叫目的地导致异常错误。

我该如何解决?

使用以下内容:

    Friend ReadOnly Property icon11() As System.Drawing.Icon
        Get
            Try

                Dim obj As Object = ResourceManager.GetObject("icon11", resourceCulture)
                Return CType(obj, System.Drawing.Icon)
            Catch ex As Exception
                My.Computer.Clipboard.SetText(ex.Message & vbNewLine & "- - - - - " & vbNewLine & ex.InnerException.Message)

            End Try
        End Get
    End Property

得到以下内容(再次由Google翻译):

(Ein Aufrufziel hat einen Ausnahmefehler verursacht。)

呼叫目的地导致异常错误。

(Der Vorgang wurde erfolgreich beendet。)

操作成功

很好的尝试InnerException先生..

答案:Hans Passant

  

您必须显示内部异常的堆栈跟踪。请记住,您的代码存在缺陷,每次使用My.Resources.iconxxx属性时都会出现新图标。这需要处理。这工作大约一万次,然后操作系统阻止你创建更多的图标和怪异的错误消息开始发生。仅使用此类属性一次,可以多次分配。并且给用户一个休息时间,没有人喜欢抓住数千行。看看Google显示百万次查询点击的方式。

确切的问题通过以下方式解决:

                private ico() As System.Drawing.Icon = New System.Drawing.Icon() {My.Resources.icon11, My.Resources.icon2__2_}
                'Some Code
                If row.Item("img_ID").ToString = "0" Then
                    .Cells(0).Value = Nothing
                ElseIf row.Item("img_ID").ToString = "1" Then
                    .Cells(0).Value = ico(0)
                ElseIf row.Item("img_ID").ToString = "2" Then
                    .Cells(0).Value = ico(1)
                Else
                    .Cells(0).Value = Nothing
                End If

0 个答案:

没有答案