С# для чайников. Разбор ошибок. [Решено]
Цитата: Алик от 29.08.2022, 14:32Доброго времени суток всем 👋🏻
Всегда подумывал о том, чтобы получить хоть какие-то базовые знания о программировании, а тут как раз наткнулся на уроки Хачатура по C# - грех не поучиться, все очень интересно и доступно, но как это бывает, что возникают некоторые вопросы, с которыми самому разобраться не получается. Для решения этих проблемок решился создать отдельную тему, чтобы не мусорить на форуме отдельными вопросами, которые могут возникать в ходе изучения языка, где люди, которые так же как и я могут искать помощь и советы.
Так вот, друзья, первая проблемка, с которой я не могу разобраться, как бы не пытался, возникла на этапе изучения условий "if". "else". Делаю все по уроку, но сыпятся ошибки, игнорировать их и дальше пытаться учиться - не очень, хотелось бы сразу разобраться, в чем ошибка. Подскажите, пожалуйста, в чем же беда, вот код:
[spoiler title=""]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 WindowsFormsApp1 { public partial class Form1 : Form { int number = 10; public Form1() { InitializeComponent(); } void button1_Click(object sender, EventArgs e) { if (number == 10); { label1.Text = "Да"; } else { label1.Text = "Нет"; } } } }
[/spoiler]
Спасибо!
Доброго времени суток всем 👋🏻
Всегда подумывал о том, чтобы получить хоть какие-то базовые знания о программировании, а тут как раз наткнулся на уроки Хачатура по C# - грех не поучиться, все очень интересно и доступно, но как это бывает, что возникают некоторые вопросы, с которыми самому разобраться не получается. Для решения этих проблемок решился создать отдельную тему, чтобы не мусорить на форуме отдельными вопросами, которые могут возникать в ходе изучения языка, где люди, которые так же как и я могут искать помощь и советы.
Так вот, друзья, первая проблемка, с которой я не могу разобраться, как бы не пытался, возникла на этапе изучения условий "if". "else". Делаю все по уроку, но сыпятся ошибки, игнорировать их и дальше пытаться учиться - не очень, хотелось бы сразу разобраться, в чем ошибка. Подскажите, пожалуйста, в чем же беда, вот код:
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 WindowsFormsApp1
{
public partial class Form1 : Form
{
int number = 10;
public Form1()
{
InitializeComponent();
}
void button1_Click(object sender, EventArgs e)
{
if (number == 10);
{
label1.Text = "Да";
}
else
{
label1.Text = "Нет";
}
}
}
}
Спасибо!
Цитата: XpucT от 29.08.2022, 14:33Привет, Алик 🖐
Скинь точно какие ошибки возникают.
Привет, Алик 🖐
Скинь точно какие ошибки возникают.
Цитата: Алик от 29.08.2022, 14:37вот🙈
[spoiler title=""][/spoiler]
вот🙈

Цитата: Иван от 29.08.2022, 14:44Привет дружище!
Рад, что тебя интересует С#.
Заметил у тебя в коде, что ты ставишь точку с запятой после if и перед блоком кода, который должен выполняется
Подробности в подсказке [spoiler title="туть"]
Ты пишешьif (number == 10);а нужно
if (number == 10) { ... }Точка с запятой там не нужна.
[/spoiler]
Привет дружище!
Рад, что тебя интересует С#.
Заметил у тебя в коде, что ты ставишь точку с запятой после if и перед блоком кода, который должен выполняется
Подробности в подсказке
Ты пишешь
if (number == 10);
а нужно
if (number == 10)
{
...
}
Точка с запятой там не нужна.
Цитата: yuri от 29.08.2022, 14:44Привет, после if (условие) ; точка с запятой не нужна
Привет, после if (условие) ; точка с запятой не нужна
Цитата: Алик от 29.08.2022, 14:46блин, ребят, спасибо большое, рад состоять в таком дружеском коммьюнити, глупая, конечно, ошибка была, спасибо за понимание 🧡😊
блин, ребят, спасибо большое, рад состоять в таком дружеском коммьюнити, глупая, конечно, ошибка была, спасибо за понимание 🧡😊
Цитата: Алик от 29.09.2022, 13:21Всем доброго времени суток, друзья!
Все еще понемногу изучаю C# по урокам Хачатура и дошел до урока "Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpper", в конце которого Хачатур дал домашнее задание (таймкод: 31:46)
Если кратко суть домашнего задания:
- Сделать так, чтобы в тексте буквы "е" заменялись на "ё"
- Сделать так, чтобы вводные слова были в запятых
- После того, как текст изменится, кнопка с "Исправить" должна стать "Исправлено", а через пару секунд стать "Скопировать"
- После нажатия на кнопку еще раз, то есть, уже по кнопке "Скопировать" - текст должен скопироваться в буфер
Если с другими задачами я худо-бедно справился, то с последим (4-м по списку) - нет. Я просто не совсем пойму, как сделать так, чтобы в Button1_Click только после повторного нажатия на кнопку текст скопировался в буфер. Может нужно как-то реализовать какой-нибудь другой метод, а в нем уже Button1_Click2 или что-то в этом роде) Просто, если я правильно понимаю. то в моей программе после единожды нажатой кнопки вся инструкция пройдет сразу, так что она не дождется повторного нажатия, чтобы скопировать текст.
Код моей "проги": [spoiler title="Код"]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.Web; using System.Windows.Forms; namespace Орфография { public partial class Орфограф : Form { public Орфограф() { InitializeComponent(); } void textBox1_TextChanged(object sender, EventArgs e) { if (textBox1.Text != "") { label1.Visible = false; } else { label1.Visible = true; } } async void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Contains ("Пожалуйста,")) { textBox1.Text = textBox1.Text.Remove(10,1).Trim(); } if (textBox1.Text.Contains("Однако,")) { textBox1.Text = textBox1.Text.Remove(6, 1); } if (textBox1.Text.Contains(", пожалуйста,")) { } else { textBox1.Text = textBox1.Text.Replace(" пожалуйста", ", пожалуйста,"); } if (textBox1.Text.Contains(", однако,")) { } else { textBox1.Text = textBox1.Text.Replace(" однако", ", однако,"); } textBox1.Text = textBox1.Text.Replace("Все же", "Всё же").Replace("все же", "всё же").Replace("Еще", "Ещё").Replace("еще", "ещё").Replace("Ее", "Её").Replace("ее", "её").Replace("Пожалуйста", "Пожалуйста, ").Replace("Все таки", "Всё таки").Replace("все таки", "всё таки").Replace("Однако", "Однако,").Replace("Пожалуй", "Пожалуй,"); button1.Text = "Исправлено"; await Task.Delay(2000); button1.Text = "Скопировать текст?"; } async void Орфограф_Load(object sender, EventArgs e) { for (Opacity = 0; Opacity < 1; Opacity += 0.03) { await Task.Delay(1); } } } }[/spoiler]
Всем доброго времени суток, друзья!
Все еще понемногу изучаю C# по урокам Хачатура и дошел до урока "Уроки C# – Работа со строками – Replace, Contains, Remove, Trim, ToLower, ToUpper", в конце которого Хачатур дал домашнее задание (таймкод: 31:46)
Если кратко суть домашнего задания:
- Сделать так, чтобы в тексте буквы "е" заменялись на "ё"
- Сделать так, чтобы вводные слова были в запятых
- После того, как текст изменится, кнопка с "Исправить" должна стать "Исправлено", а через пару секунд стать "Скопировать"
- После нажатия на кнопку еще раз, то есть, уже по кнопке "Скопировать" - текст должен скопироваться в буфер
Если с другими задачами я худо-бедно справился, то с последим (4-м по списку) - нет. Я просто не совсем пойму, как сделать так, чтобы в Button1_Click только после повторного нажатия на кнопку текст скопировался в буфер. Может нужно как-то реализовать какой-нибудь другой метод, а в нем уже Button1_Click2 или что-то в этом роде) Просто, если я правильно понимаю. то в моей программе после единожды нажатой кнопки вся инструкция пройдет сразу, так что она не дождется повторного нажатия, чтобы скопировать текст.
Код моей "проги":
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.Web;
using System.Windows.Forms;
namespace Орфография
{
public partial class Орфограф : Form
{
public Орфограф()
{
InitializeComponent();
}
void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
label1.Visible = false;
}
else
{
label1.Visible = true;
}
}
async void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Contains ("Пожалуйста,"))
{
textBox1.Text = textBox1.Text.Remove(10,1).Trim();
}
if (textBox1.Text.Contains("Однако,"))
{
textBox1.Text = textBox1.Text.Remove(6, 1);
}
if (textBox1.Text.Contains(", пожалуйста,"))
{
}
else
{
textBox1.Text = textBox1.Text.Replace(" пожалуйста", ", пожалуйста,");
}
if (textBox1.Text.Contains(", однако,"))
{
}
else
{
textBox1.Text = textBox1.Text.Replace(" однако", ", однако,");
}
textBox1.Text = textBox1.Text.Replace("Все же", "Всё же").Replace("все же", "всё же").Replace("Еще", "Ещё").Replace("еще", "ещё").Replace("Ее", "Её").Replace("ее", "её").Replace("Пожалуйста", "Пожалуйста, ").Replace("Все таки", "Всё таки").Replace("все таки", "всё таки").Replace("Однако", "Однако,").Replace("Пожалуй", "Пожалуй,");
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать текст?";
}
async void Орфограф_Load(object sender, EventArgs e)
{
for (Opacity = 0; Opacity < 1; Opacity += 0.03)
{
await Task.Delay(1);
}
}
}
}
Цитата: XpucT от 29.09.2022, 13:30Алик, привет 🖐
Строго говоря, не обязательно держать всё на одной кнопке. Можно повесить и вторую для копирования текста. Так будет даже лучше.
Алик, привет 🖐
Строго говоря, не обязательно держать всё на одной кнопке. Можно повесить и вторую для копирования текста. Так будет даже лучше.
Цитата: Валерий от 10.10.2022, 12:14Всем привет!
Решил не создавать новую тему т.к. и тут проблемы новичка.
Суть в том, что появилась задачка по работе и решил самостоятельно ее решить... и вот мой опыт в C# - неделя. Деятельность с этим вообще не связана, прошу сильно не ругать, если что-то очевидное.
По проблеме что-то схожего ничего найти не смог в интернетах.
Проблема:
На второй форме есть textbox, который берет текст из txt файла, добавил кнопку редактирования и обновления.
+ что бы при запуске формы сразу загружался текст, воткнул в самом начале обновление текст бокса.InitializeComponent(); textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt"); InitializeComponent();В качестве кнопки обновления picture box:
private void pictureBox1_Click(object sender, EventArgs e) { textBox1.Text = File.ReadAllText(@"C:\Aerosoft Disp B1\info.txt"); }Все работало и не могу понять в какой момент перестало. При открытии формы все так же успешно текст обновляется, но принудительно по нажатию на pictureBox - нет. Перестало. Добавлял кнопку и устанавливал на нее. Добавлял новый textBox и снова ничего. Перезагружал и стукнул по нему и все без успешно. Бубна нет.
Запускал с отладкой устанавливая стоппер на нажатии и поле текс заполняется текстом из файла, но в форме никакого результата.
Всем привет!
Решил не создавать новую тему т.к. и тут проблемы новичка.
Суть в том, что появилась задачка по работе и решил самостоятельно ее решить... и вот мой опыт в C# - неделя. Деятельность с этим вообще не связана, прошу сильно не ругать, если что-то очевидное.
По проблеме что-то схожего ничего найти не смог в интернетах.
Проблема:
На второй форме есть textbox, который берет текст из txt файла, добавил кнопку редактирования и обновления.
+ что бы при запуске формы сразу загружался текст, воткнул в самом начале обновление текст бокса.
InitializeComponent(); textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt"); InitializeComponent();
В качестве кнопки обновления picture box:
private void pictureBox1_Click(object sender, EventArgs e)
{
textBox1.Text = File.ReadAllText(@"C:\Aerosoft Disp B1\info.txt");
}
Все работало и не могу понять в какой момент перестало. При открытии формы все так же успешно текст обновляется, но принудительно по нажатию на pictureBox - нет. Перестало. Добавлял кнопку и устанавливал на нее. Добавлял новый textBox и снова ничего. Перезагружал и стукнул по нему и все без успешно. Бубна нет.
Запускал с отладкой устанавливая стоппер на нажатии и поле текс заполняется текстом из файла, но в форме никакого результата.
Цитата: Валерий от 10.10.2022, 12:24не могу отредактировать отправленное сообщение(
Во втором примере кода не скорректировал путь к папке:private void pictureBox1_Click(object sender, EventArgs e) { textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt"); }
не могу отредактировать отправленное сообщение(
Во втором примере кода не скорректировал путь к папке:
private void pictureBox1_Click(object sender, EventArgs e)
{
textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt");
}
Цитата: Валерий от 10.10.2022, 14:28Извините, если кого-то успел побеспокоить. Нашел сам в чем проблема.
InitializeComponent(); textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt"); InitializeComponent();2 раза вписан InitializeComponent();
убрал второй и все опять нормально заработало... хотя для меня пока еще не очевидна связь) разобрался только методом проб в тестовом проекте, воспроизводя последовательно действия свои по данной задачке.
Сталкивался еще с одной проблемой, хотел сделать выплывающее окно при наведении мышки. По примеру изложенному на youtube с двумя формами от @XpucT.
В общем все удалось, вот только окно выезжало всегда снизу остальных элементов на форме, хотя жмакал на нее ПКМ и выбирал "на передний план", но так и не сработало. Планирую еще раз попробовать с "Control.BringToFront()". Если не сработавшее "на передний план" означает, что и Control.BringToFront() не поможет и нужно двигаться по другому пути, то буду признателен за комментарии.
Извините, если кого-то успел побеспокоить. Нашел сам в чем проблема.
InitializeComponent(); textBox1.Text = File.ReadAllText(@"C:\Disp\info.txt"); InitializeComponent();
2 раза вписан InitializeComponent();
убрал второй и все опять нормально заработало... хотя для меня пока еще не очевидна связь) разобрался только методом проб в тестовом проекте, воспроизводя последовательно действия свои по данной задачке.
Сталкивался еще с одной проблемой, хотел сделать выплывающее окно при наведении мышки. По примеру изложенному на youtube с двумя формами от @XpucT.
В общем все удалось, вот только окно выезжало всегда снизу остальных элементов на форме, хотя жмакал на нее ПКМ и выбирал "на передний план", но так и не сработало. Планирую еще раз попробовать с "Control.BringToFront()". Если не сработавшее "на передний план" означает, что и Control.BringToFront() не поможет и нужно двигаться по другому пути, то буду признателен за комментарии.