Member 12825311 Ответов: 1

Ошибка CS1026 и ошибка CS1061


Я пытаюсь построить калькулятор ресторанных счетов для класса, но у меня есть несколько ошибок, которые я не могу понять, как исправить. Ошибка CS1026 указывает в списке ошибок, что она была "ожидаемой". Ошибка CS1061 указывает в списке ошибок, что "TextBox" не содержит определения для "Items" и не может быть найден метод расширения "Items", принимающий первый аргумент типа "TextBox" (отсутствует ли директива using или ссылка на сборку?). Элементы перечислены в выпадающих списках... Я не могу понять, как исправить эти ошибки Dx. пожалуйста, помогите мне и спасибо!
Вот моя кодировка для калькулятора ресторанных счетов:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Restaurant_Bill_Calculator
{

    public partial class RestaurantBillCalculator : Form
    {
        public struct Orders
        {
            public string item;
            public double price;
        }

        const double TAX = 0.06; //6% tax
        Orders order = new Orders();
        static double subtotal = 0;
        static double totalTaxes = 0;
        static double total = 0;
        string finalBill = "FINAL BILL: \n";

        public RestaurantBillCalculator()
        {
            InitializeComponent();
        }

        private void getValues(string custOrder)
        {
            order.item = custOrder.Split('$')[0];
            order.price = Convert.ToDouble(custOrder.Split('$')[1];
            Output.Items.Add("Price: " + order.price);
            finalBill += "Ordered Item: " + order.item + "\nPrice: " + order.price.ToString("C2") + "\n";
            updateBill();
        }

        private void updateBill()
        {
            subtotal += order.price;
            total += order.price + (order.price * TAX);
            totalTaxes += order.price * TAX;
            {

            }

            Output.Items.Clear();
            Output.Items.AddRange(finalBill.Split('\n'));
            Output.Items.Add("Subtotal: " + subtotal.ToString("C2"));
            Output.Items.Add("Tax: " + totalTaxes.ToString("C2"));
            Output.Items.Add("Total: " + total.ToString("C2"));
        }

        private void RestaurantBillCalculator_Load(object sender, EventArgs e)
        {

        }

        private void dropdownSelection(object sender, EventArgs e)
        {
            if (sender == cmbdrinks)
                getValues(cmbdrinks.SelectedItem.ToString());
            else if (sender == cmbappetizers)
                getValues(cmbappetizers.SelectedItem.ToString());
            else if (sender == cmbmaincourses)
                getValues(cmbmaincourses.SelectedItem.ToString());
            else
                getValues(cmbdrinks.SelectedItem.ToString());
        }

        private void Output_TextChanged(object sender, EventArgs e)
        {
        }

        private void Clear_Click(object sender, EventArgs e)
        {
        }
    }
}


Что я уже пробовал:

Я пытался найти решение в интернете, но ни одно решение не соответствовало моей проблеме...

ZurdoDev

Вы должны сказать нам, какая строка кода вызывает ошибку и какова полная ошибка.

"Текстовое поле" не содержит определения для "элементов" - это означает, что у вас где-то есть текстовое поле и вы пытаетесь получить доступ к элементам в нем, но элементы не являются допустимым свойством или методом для текстового поля.

Member 12825311

Ой, прошу прощения... Ошибка CS1026 находится на линии 37, а ошибка CS1061 - на линиях 38, 52, 53, 54, 55, и 56. Ошибка CS1061 не распознает "элементы", что не имеет никакого смысла, потому что "элементы" находятся в описании комбо-боксов.

phil.o

Очевидно, вывод - это текстовое поле, а не ComboBox.

Member 12825311

Да, вывод - это текстовое поле, но я следовал коду, который кто-то дал мне, и они заявили, что используют вывод.Предметы.. Они заявили, что если я использую выход.Элементы, которые он взял бы из выпадающего списка и поместил бы его в текстовое поле для вычисления, но я думаю, что их информация была неправильной, лол.

1 Ответов

Рейтинг:
9

Midi_Mick

Дважды проверьте, какой тип управления" выход". Я думаю, вы обнаружите, что это текстовое поле, а не combobox. А текстовое поле не имеет свойства Items.

И строка 37-вы пропускаете закрытую скобку. У вас есть две открытые скобки и только одна закрытая.


Member 12825311

Я знаю, что вывод - это текстовое поле, но мне сказали использовать этот код, потому что он будет брать информацию из комбо-боксов и помещать их в текстовые поля для вычисления. Спасибо за отсутствующую закрытую скобку, я и не подозревал, что у меня ее нет.

Midi_Mick

Но текстовое поле не имеет свойства Items. Если это многострочное текстовое поле,вам придется добавить всю информацию в Вывод.Свойство Text с разделителем новой строки ('\n'). Однако, если вам не нужно редактировать текст, я бы, возможно, посмотрел на использование элемента управления ListBox вместо этого - у него есть свойство Items, которое вы используете.

Member 12825311

Спасибо! Я так вам благодарна! Они сообщили мне неверную информацию.

Midi_Mick

Не беспокойтесь - с удовольствием помогу