ThePersonWhoCodes Ответов: 2

Как сравнить тег кнопки с меткой из другой формы


When i click a button on form 1 that has the same tag as the text in a label in form 2 i want it to output the number 1 in a label in form 2

What I have tried:

<pre>if (BtnGlobal.Text == Form2 frm = new Form2(label1.Text))
                {
                    if (String.IsNullOrEmpty(Form2 frm = new Form2(label1.Text)))
                    {
                        Form2 frm = new Form2(label1.Text) = "1".ToString();
                    }
                    else if (Form2 frm = new Form2(label1.Text).contains(int))
                    {
                        int i = Form2 frm = new Form2(label1.Text);
                        i + 1;
                    }
                }

2 Ответов

Рейтинг:
1

CHill60

Вы создаете там много новых форм. Этот код вообще компилируется? Что это должно было сделать

'1'.ToString();
Вы это имели в виду
"1";
Прочтите серию советов, опубликованных OriginalGriff здесь - первый из них Передача информации между двумя формами, Часть 1: Родитель-Ребенок[^] со ссылками на все остальное в этой статье.


Рейтинг:
0

OriginalGriff

При создании новой формы:

if (String.IsNullOrEmpty(Form2 frm = new Form2(label1.Text)))

Form2 frm = new Form2(label1.Text) = '1'.ToString();
Или
else if (Form2 frm = new Form2(label1.Text).contains(int))
Или
int i = Form2 frm = new Form2(label1.Text);
Вы делаете именно это: создаете новую форму порки бренда, которая не имеет ничего общего с любой существующей версией. И из-за правил области действия он никогда не мог этого сделать, так как он больше не доступен после того, как он следует за закрытой фигурной скобкой.
Итак этот код:
if (String.IsNullOrEmpty(Form2 frm = new Form2(label1.Text)))
{
    Form2 frm = new Form2(label1.Text) = '1'.ToString();
}
вообще ничего полезного не делает!
Вы создаете новую форму в своем if условие, которое всегда будет иметь значение по умолчанию, заданное вами в конструкторе teh. Поэтому, если это пустая строка, тест всегда будет проходить, независимо от того, что ваша метка содержит в любой видимой форме.
То есть потом "выбрасывается".
Затем вы создаете еще одну новую форму И... ну, он не будет компилироваться, поэтому не имеет значения, что он делает на самом деле - создает символ, преобразует его в строку, присваивает ему новую форму (при условии, что есть конструктор, который принимает строковый параметр, и это label1 существует в текущем классе / форме, а затем попытаться присвоить его переменной Form2, прежде чем все это выйдет из области видимости и будет выброшено?

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

Как сказал чилл, общение между формами не так уж сложно, полный список моих советов по этому вопросу находится здесь:

Форма, которая создает экземпляр другого:
MyForm mf = new MyForm();
mf.Show();
Это "родитель", другая форма - "Ребенок".
(Это не подразумевает никаких формальных отношений MDI)

Передача информации между двумя формами, Часть 1: Родитель-Ребенок[^]
Передача информации между двумя формами, Часть 2: Ребенок-Родитель[^]
Передача информации между двумя формами, Часть 3: Ребенок ребенку[^]

Но tio будет жестоко честен, на основе вашего примера кода Вы еще не готовы к этому - Вам нужно многому научиться, прежде чем вы приступите к созданию и обработке событий!


Luc Pattyn

Жестоко честен? вы слишком добры, другой путь карьеры был бы желателен.

OriginalGriff

Вероятно, с участием волшебных слов: "хочешь картошку фри с этим?": вздох:

ThePersonWhoCodes

вы правильно поняли, это скорее то, что я хотел попробовать, я не программист, так что все в порядке. мой друг поспорил со мной, что я не смогу сделать POS-систему.

OriginalGriff

Проблема в том, что вы пытаетесь сделать что - то, что находится далеко за пределами вашего уровня опыта-и это означает, что вы действительно понятия не имеете, насколько это сложно, или что вам нужно знать, чтобы это сделать.
И бросая код вместе наугад, вы не получите то, что хотите.
Вам нужно знать, как это сделать.:
Общайтесь с пользователем
Обработка базы данных
Вероятно, считайте штрих-код и преобразуйте его в продукт
Получите цену.
Добавьте это в "текущий список продаж"
Когда он закончен, суммируйте его, обработайте оплату, сгенерируйте счет-фактуру и квитанцию, удалите все проданные продукты со склада, обработайте повторные заказы по мере необходимости ...
О, и "handle payment" открывает свою собственную банку высокозащищенных червей: иметь дело с реальными деньгами означает иметь дело с качественной безопасностью, а также с внешними поставщиками карточных услуг!

Это очень много, чтобы знать, а не проект, чтобы "просто попробовать"! :смеяться:
Если вы действительно хотите сделать это, возьмите книгу (или лучше пойти на курс) и сделать все (скучные) упражнения - они там, чтобы получить идеи просто покрыты твердо в вашем мозгу, и пропустить их означает, что вы не учитесь, а также, если вообще. (Люди учатся на практике, а не на результатах.)
Дайте ему попробовать!

ThePersonWhoCodes

Это POS-система, которая не должна использоваться на практике, поэтому ей не нужно иметь сканер штрих-кодов и ничего из того, что нужно для обработки платежей в книжном магазине, а просто кнопки на экране, которые добавляют товары в "текущий список продаж".
Что касается всего остального
У меня есть база данных предметов, которую можно легко расширить
А "текущий список продаж"
А система суммирования
страница входа
квитанцию "существует"
Скидки
Итого, общая сумма и НДС
Рабочая клавиатура (не то чтобы клавиатура имела значение)
что вы подразумеваете под переупорядочиванием
все в sub 250 строках кода (если подумать, то это, наверное, все еще много)

что касается части get a book, то я прошел курс SDD в течение 3,5 лет в средней школе, поэтому некоторое время назад, который в основном охватывал "скучные "упражнения, я сделал это, использует много if else и отправителей кнопок, но работает до сих пор. Так что это единственное, что меня сдерживает