Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()... - C#
Формулировка задачи:
Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen(). Хотя, возможно, я в корне не так все делаю. В общем, нужно проверить, есть ли слово, введенное в textBox1, в textBox2 или в файле "*.txt", если обнаружится совпадение - запретить использование GenerateButton, не обрабатывать нажатие Enter в textbox1 и вывести с помощью MessageBox ошибку. Спасибо за помощь
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; using System.IO; namespace WordsGenerator { public partial class Form1 : Form { Random rGen; string fileName = null; bool progIsModified; string[] chars = { "z", "b", "v", "g", "dz", "dzh", "Г°", "s", "p", "f", "k", "t", "ts", "tsh", "Оё", "x", "m", "n", "r", "l", "w", "j", "a", "i", "u", "Й”", "o", "Й›", "e"}; public Form1() { InitializeComponent(); } private void Form1_Load(object sender,EventArgs e) { openFileDialog1.FileName = ""; openFileDialog1.Filter = "Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*"; } private void WordsGen() { rGen = new Random(); var vowelTurn = true; int p = 0, syllabNum = 0, charsNum = 0; string wordStr = null; syllabNum = rGen.Next(0,2);//0 - 2слога;1 - 3слога и т.д. if (syllabNum == 0) charsNum = 3; if (syllabNum == 1) charsNum = 5; for (int i = 0; i < charsNum; i++) { if (vowelTurn) { p = rGen.Next(22,chars.Length); wordStr += chars[p]; vowelTurn = !vowelTurn; } else if (!vowelTurn) { p = rGen.Next(0,22); wordStr += chars[p]; vowelTurn = !vowelTurn; } } TwiceUsedWord(); textBox2.Text += textBox1.Text + " " + wordStr + Environment.NewLine; textBox1.Clear(); } private void выбратьСловарьToolStripMenuItem_Click(object sender,EventArgs e) { openFileDialog1.ShowDialog(); if (openFileDialog1.FileName == null) return; fileName = openFileDialog1.FileName; label1.Text = "Выб. словарь " + fileName; } private void открытьToolStripMenuItem_Click(object sender,EventArgs e) { System.Diagnostics.Process.Start( "Wordpad",fileName); } private void сохранитьToolStripMenuItem_Click(object sender,EventArgs e) { try { var writer = new StreamWriter( fileName,true,Encoding.UTF8); writer.Write(textBox2.Text); writer.Close(); textBox2.Clear(); progIsModified = false; } catch (Exception badCase) { MessageBox.Show(badCase.Message,"Ошибка", MessageBoxButtons.OK,MessageBoxIcon.Exclamation); } } private void textBox1_KeyDown(object sender,KeyEventArgs e) { if (e.KeyCode == Keys.Enter) WordsGen(); if (textBox1.Text != null) progIsModified = true; } private void TwiceUsedWord(KeyEventArgs e) { var reader = new StreamReader( fileName,Encoding.UTF8); while (!reader.EndOfStream) { string line = reader.ReadLine(); if (line.StartsWith(textBox1.Text) || textBox2.Text.StartsWith(textBox1.Text)) { GenerateButton.Enabled = false; e.Handled = true; MessageBox.Show("Данное слово уже существует","Ошибка", MessageBoxButtons.OK,MessageBoxIcon.Exclamation); } } } private void GenerateButton_Click(object sender,EventArgs e) { WordsGen(); } } }
Решение задачи: «Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()...»
textual
Листинг программы
KeyEventArgs ke = new KeyEventArgs(Keys.None);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д