Visual Studio 2010 String.Format异常

时间:2018-07-07 05:11:04

标签: visual-studio-2010

我正在尝试使用format.string将列插入列表框,但似乎无法正常工作,它说“输入字符串的格式不正确”。我已经解决了这个问题,但在Google上找不到任何解决方案。所以我决定在这里问,顺便问一下这是我的代码

Public Class Form1
Dim stddetails As String = "{0, -20}{1, -20}{2, -20}{3, -20}(4, -20}{5, -20}{6, -20}"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    lstoutput.Items.Add(String.Format(stddetails, "Customer ID", "Nama Depan", "Nama Belakang", "Pemesanan", "Tanggal Pemesanan", "Pembayaran", "Total"))

    cmbpemesanan.Items.Add("Pilih Cara Pemesanan")
    cmbpemesanan.Items.Add("Telepon")
    cmbpemesanan.Items.Add("Ditempat")
    cmbpemesanan.Items.Add("Pemesanan Online")

    cmbpembayaran.Items.Add("Pilih Pembayaran")
    cmbpembayaran.Items.Add("Cash")
    cmbpembayaran.Items.Add("Master Card")
    cmbpembayaran.Items.Add("Visa Card")
    cmbpembayaran.Items.Add("Debit Langsung")

    lstmerek.Items.Add("Indonesian")
    lstmerek.Items.Add("Japanese")
    lstmerek.Items.Add("Middle East")
    lstmerek.Items.Add("European")

    seafood.Checked = False
    traditional.Checked = False
    drinks.Checked = False
    fullpack.Checked = False

    rbsatu.Checked = False
    rbdua.Checked = False
    rbempat.Checked = False
    rbdelapan.Checked = False
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkeluar.Click
    Dim ikeluar As DialogResult
    ikeluar = MessageBox.Show("Keluar dari menu?", "Food Order Menu", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If ikeluar = DialogResult.Yes Then
        Application.Exit()
    End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnhapus.Click

    seafood.Checked = False
    traditional.Checked = False
    drinks.Checked = False
    fullpack.Checked = False

    rbsatu.Checked = False
    rbdua.Checked = False
    rbempat.Checked = False
    rbdelapan.Checked = False

    txtid.Clear()
    txtnamabelakang.Clear()
    txtnamadepan.Clear()
    cmbpembayaran.Text = "Pilih Pembayaran"
    cmbpemesanan.Text = "Pilih Cara Pemesanan"
    lstoutput.Items.Clear()
    lstmerek.SelectedItems.Clear()
    lstoutput.Items.Add(String.Format(stddetails, "Customer ID", "Nama Depan", "Nama Belakang", "Pemesanan", "Tanggal Pemesanan", "Pembayaran", "Total"))

End Sub

Public Function getprices(ByVal brand As String, ByVal items As List(Of String), ByVal quantity As Integer) As Double
    Dim prices = {
        {"Indonesian", 2.5, 2, 0.95},
    {"Japanese", 2.3, 1.5, 2.5},
    {"Middle East", 3.5, 5, 4.9},
    {"European", 3.8, 2.7, 1.5}
}

    Dim sum As Double = 0
    For i As Integer = 0 To 4
        If (brand = prices(i, 0)) Then
            For j As Integer = 0 To items.Count - 1
                If (items(j) = "Seafood") Then
                    sum = sum + prices(i, 1)
                ElseIf (items(j) = "Traditional") Then
                    sum = sum + prices(i, 2)
                ElseIf (items(j) = "Drinks") Then
                    sum = sum + prices(i, 3)
                End If
            Next
            sum = sum * quantity
        End If
    Next
    Return sum
End Function

Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click

    Dim ID, namadepan, namabelakang, pemesanan, tanggal, pembayaran, price As String

    ID = txtid.Text
    namadepan = txtnamadepan.Text
    namabelakang = txtnamabelakang.Text
    pemesanan = cmbpemesanan.Text
    tanggal = cmbtanggal.Text
    pembayaran = cmbpembayaran.Text

    Dim items As New List(Of String)
    Dim quantity As Integer

    If (seafood.Checked = True) Then
        items.Add(seafood.Text)
    End If
    If (traditional.Checked = True) Then
        items.Add(traditional.Text)
    End If
    If (drinks.Checked = True) Then
        items.Add(drinks.Text)
    End If
    If (fullpack.Checked = True) Then
        items.Add(fullpack.Text)
    End If

    If (rbsatu.Checked = True) Then
        quantity = 1
    ElseIf (rbdua.Checked = True) Then
        quantity = 2
    ElseIf (rbempat.Checked = True) Then
        quantity = 4
    ElseIf (rbdelapan.Checked = True) Then
        quantity = 8
    End If

    If lstmerek.Text = "" Then
        MessageBox.Show("Anda harus memilih jenis makanan.", "Jenis Makanan", MessageBoxButtons.OK, MessageBoxIcon.Information)
    ElseIf (seafood.Checked = False And traditional.Checked = False And drinks.Checked = False) Then
        MessageBox.Show("Anda harus memilih kategori.", "Kategori", MessageBoxButtons.OK, MessageBoxIcon.Information)
    ElseIf (rbsatu.Checked = False And rbdua.Checked = False And rbempat.Checked = False And rbdelapan.Checked = False) Then
        MessageBox.Show("Anda harus memilih jumlah.", "Jumlah Pesanan", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Else
        price = FormatCurrency(getprices(lstmerek.Text, items, quantity))
        lstoutput.Items.Add(String.Format(stddetails, ID, namadepan, namabelakang, pemesanan, tanggal, pembayaran, price))

    End If

End Sub

Private Sub btntambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntambah.Click

    seafood.Checked = False
    traditional.Checked = False
    drinks.Checked = False
    fullpack.Checked = False

    rbsatu.Checked = False
    rbdua.Checked = False
    rbempat.Checked = False
    rbdelapan.Checked = False

    txtid.Clear()
    txtnamabelakang.Clear()
    txtnamadepan.Clear()
    cmbpembayaran.Text = "Pilih Pembayaran"
    cmbpemesanan.Text = "Pilih Cara Pemesanan"
    lstoutput.Items.Clear()
    lstmerek.SelectedItems.Clear()

End Sub

结束班级

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

第2行出现语法错误

您使用“(”代替“ {”

替换

Dim stddetails As String = "{0, -20}{1, -20}{2, -20}{3, -20}(4, -20}{5, -20}{6, -20}"

使用

Dim stddetails As String = "{0, -20}{1, -20}{2, -20}{3, -20}{4, -20}{5, -20}{6, -20}"