【问题标题】:'OpenFileDialog' is a type and cannot be used as an expression'OpenFileDialog' 是一种类型,不能用作表达式
【发布时间】:2020-07-31 20:54:58
【问题描述】:

您好,我收到一个错误,因为 OpenFileDialog 和 SaveFileDialog 是一种类型,不能用作表达式,请您帮我解决这些错误

     Private Sub btnEncode_Click(sender As Object, e As EventArgs)

        Using (SaveFileDialog sfd = New SaveFileDialog() {Filter() = "JPEG|*.jpg", ValidateNames = True})

            If (sfd.ShowDialog() = DialogResult.OK) Then

                MessagingToolkit.QRCode.Codec().QRCodeEncodere(encoder) = New 
                MessagingToolkit.QRCode.Codec.QRCodeEncoder()
                encoder.QRCodeScale = 8
                Bitmap(bmp) = encoder.Encode(txt.Encode.Text)
                PictureBox.Image = bmp
                bmp.Save(sfd.FileName, ImageFormat.Jpeg)
            End If
        End Using
    End Sub

    Private Sub btnDecode_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "JPEG|*.jpg", ValidateNames = true, Multiselct - False})

            If (ofd.ShowDialog() = DialogResult.OK) Then

                PictureBox.Image = Image.FromeFile(ofd.FileName)
                MessagingToolkit.QRCode.Codec.QRCodeDecoder(Decoder) = New 
                MessagingToolkit.QRCode.Codec.QRCodeDecoder()
                txtDecode.Text = decoder.Decode(New QRCodeBitmapImage = (PictureBox.ImageBitmap))
            End If
        End Using
    End Sub

【问题讨论】:

  • 这看起来更像 VB 而不是 C# :) 在任何情况下,你能提供你得到的异常的完整异常和堆栈跟踪吗?我不清楚这段代码在哪里会出现错误 - 如果问题甚至出现在这段代码中。
  • 我进入了学习阶段,请您帮助我了解如何获取堆栈跟踪
  • 堆栈跟踪/调用堆栈是您遇到的异常的一个属性。你可以see in the docs它的样子
  • 如果是VB,应该是Using sfd As SaveFileDialog = New SaveFileDialog()
  • 如果有人可以在环聊中通过 manojgaidhankar@gmail.com 与我联系,我已经尝试过这个东西,这将是一个很大的帮助,以便我可以共享屏幕并向你展示

标签: vb.net visual-studio-2012


【解决方案1】:

您似乎完全混淆了 C# 和 VB.NET。如果您完全用 VB.NET 编写代码,则代码如下:

 Private Sub btnEncode_Click(sender As Object, e As EventArgs)

        Using sfd As SaveFileDialog = New SaveFileDialog() With {.Filter = "JPEG|*.jpg", .ValidateNames = True})

            If sfd.ShowDialog() = DialogResult.OK Then

                Dim encoder As MessagingToolkit.QRCode.Codec().QRCodeEncoder = New MessagingToolkit.QRCode.Codec.QRCodeEncoder()
                encoder.QRCodeScale = 8
                Dim bmp As Bitmap = encoder.Encode(txtEncode.Text)
                PictureBox.Image = bmp
                bmp.Save(sfd.FileName, ImageFormat.Jpeg)
            End If
        End Using
    End Sub

    Private Sub btnDecode_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Using ofd As OpenFileDialog = new OpenFileDialog() With {.Filter = "JPEG|*.jpg", .ValidateNames = True, .Multiselect = False})

            If ofd.ShowDialog() = DialogResult.OK Then
                PictureBox.Image = Image.FromeFile(ofd.FileName)
                Dim decoder As MessagingToolkit.QRCode.Codec.QRCodeDecoder = New MessagingToolkit.QRCode.Codec.QRCodeDecoder()
                txtDecode.Text = decoder.Decode(New QRCodeBitmapImage(PictureBox.ImageBitmap))
            End If
        End Using
    End Sub

如果你想完全用 C# 编写它,代码应该是:

 private void btnEncode_Click(object sender, EventArgs e)
{
        using (SaveFileDialog sfd = new SaveFileDialog() {Filter = "JPEG|*.jpg", ValidateNames = True})
        {
            if(sfd.ShowDialog() == DialogResult.OK)
            {
                MessagingToolkit.QRCode.Codec().QRCodeEncoder encoder = new MessagingToolkit.QRCode.Codec.QRCodeEncoder();
                encoder.QRCodeScale = 8;
                Bitmap bmp = encoder.Encode(txtEncode.Text);
                PictureBox.Image = bmp;
                bmp.Save(sfd.FileName, ImageFormat.Jpeg);
            }
        }
}

private void btnDecode_Click(object sender, EventArgs e)
{
        using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "JPEG|*.jpg", ValidateNames = true, Multiselect = False})
        {
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                PictureBox.Image = Image.FromeFile(ofd.FileName);
                MessagingToolkit.QRCode.Codec.QRCodeDecoder decoder = New 
                MessagingToolkit.QRCode.Codec.QRCodeDecoder();
                txtDecode.Text = decoder.Decode(New QRCodeBitmapImage(PictureBox.ImageBitmap));
            }
       }
}

PictureBox 控件没有名为“ImageBitmap”的属性,所以我不确定您是否指的是“Image”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多