Не могу получить кнопку, чтобы сделать простые вычисления и написать ответ в текстовом поле
Я только начал писать на C# несколько дней назад и мне нужна помощь с программой, которую я пишу.
Это не настоящий код, просто то, что я написал, чтобы показать вам, как создается оригинальный код.
public partial class form1 : form
{
int container;
int resource;
int capacity;
int price;
int total;
int basket = 10; //container that holds 10 slots
int apples = 2; //resource that takes 2 slots per resource
}
public form1()
{
private void checkbox1_checkedchanged(object sender, eventargs e) //basket checkbox
{
if (((CheckBox)checkbox1).Checked == true)
{
basket = container;
}
}
private void checkbox2_checkedchanged(object sender, eventargs e) //apples checkbox
{
if (((CheckBox)checkbox2.Checked == true)
{
apples = resource;
}
}
private void button1_Click(object sender, EventArgs e) //calculate button
{
container / resource = capacity; //to see how many resources the basket can hold
/* textbox 1 is where they write the price for what 1 apple cost */
price = int.Parse(textbox1.text);
capacity * price = total;
textbox2.AppendText(total); //textbox2 is where they will se how much the apples cost
}
}
Проблема в том, что я получаю ошибки из кода в "button1", который говорит все от
- Левая часть присваивания должна быть переменной, свойством или индексатором.
- Невозможно получить адрес, получить размер или объявить указатель на управляемый тип ("емкость")
- "WindowsFormApplication1.Form1.Capacity" является "полем", но используется как "тип"
- Указатели буфера фиксированного размера могут использоваться только в небезопасном контексте.
- не может неявно преобразовать тип 'int' в 'Capacity *'. Существует явное преобразование (вам не хватает приведения?)
- Наилучшее перегруженное соответствие метода для 'System.Window.Forms.TextBoxBase.AppendText(String)' имеет недопустимые аргументы
- Аргумент 1: невозможно преобразовать из int в string
Поэтому мне интересно, что я делаю не так, чтобы добиться такого приложения, которое я хочу. Приложение выглядит примерно так:
Изменить: Исходный код был удален
Edit2: Вот так выглядит button1 сейчас, и нет никаких ошибок, кроме той, которая возникает, когда я пытаюсь разделить транспортное средство с солью (не пробовал ни один другой ресурс, кроме того, который указан в списке). Код выглядит так же, как и раньше, но я изменил это благодаря Дэвиду Пилкингтону.
private void button1_Click(object sender, EventArgs e) /* calculate-button */
{
capacity = vehicle / resource;
total = capacity * price;
textBox4.AppendText(total.ToString());
}
2 ответа
private void button1_Click(object sender, EventArgs e) //calculate button
{
capacity = container / resource; //to see how many resources the basket can hold
price = int.Parse(textbox1.text);
total= capacity * price;
textbox2.AppendText(total.ToString()); //textbox2 is where they will se how much the apples cost
}
Ваши задания неверны, и вам нужно преобразовать int
к string
перед добавлением
Вы также можете использовать TryParse
обрабатывать грязный ввод
private void button1_Click(object sender, EventArgs e) //calculate button
{
capacity = container / resource; //to see how many resources the basket can hold
if(int.TryParse(textbox1.text, out price))
{
total= capacity * price;
textbox2.AppendText(total.ToString()); //textbox2 is where they will se how much the apples cost
}
}
БОЛЬШОЕ РЕДАКТИРОВАНИЕ:
Кажется, все твои задания неверны. Это означает, что ресурс никогда не устанавливается и будет создавать ошибку в этой строке capacity = container / resource;
Ваш код все неправильно в button2_click()
container / resource = capacity; //to see how many resources the basket can hold
/* textbox 1 is where they write the price for what 1 apple cost */
price = int.Parse(textbox1.text);
capacity * price = total;
textbox2.AppendText(total);
Должен (возможно?) Быть
capacity = container / resource; //to see how many resources the basket can hold
/* textbox 1 is where they write the price for what 1 apple cost */
price = int.Parse(textbox1.text);
total = capacity * price;
textbox2.AppendText(total.ToString());
Это должно удалить большинство ваших ошибок в коде.
Надеюсь, поможет! //KH.