Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()... - C#

Узнай цену своей работы

Формулировка задачи:

Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen(). Хотя, возможно, я в корне не так все делаю. В общем, нужно проверить, есть ли слово, введенное в textBox1, в textBox2 или в файле "*.txt", если обнаружится совпадение - запретить использование GenerateButton, не обрабатывать нажатие Enter в textbox1 и вывести с помощью MessageBox ошибку. Спасибо за помощь
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. namespace WordsGenerator
  12. {
  13. public partial class Form1 : Form
  14. {
  15. Random rGen;
  16. string fileName = null;
  17. bool progIsModified;
  18. string[] chars = {
  19. "z", "b", "v", "g", "dz", "dzh", "Г°", "s", "p", "f", "k", "t", "ts", "tsh", "Оё", "x", "m", "n", "r", "l", "w", "j",
  20. "a", "i", "u", "Й”", "o", "Й›", "e"};
  21. public Form1()
  22. {
  23. InitializeComponent();
  24. }
  25. private void Form1_Load(object sender,EventArgs e)
  26. {
  27. openFileDialog1.FileName = "";
  28. openFileDialog1.Filter =
  29. "Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*";
  30. }
  31. private void WordsGen()
  32. {
  33. rGen = new Random();
  34. var vowelTurn = true;
  35. int p = 0, syllabNum = 0, charsNum = 0;
  36. string wordStr = null;
  37. syllabNum = rGen.Next(0,2);//0 - 2слога;1 - 3слога и т.д.
  38. if (syllabNum == 0) charsNum = 3;
  39. if (syllabNum == 1) charsNum = 5;
  40. for (int i = 0; i < charsNum; i++)
  41. {
  42. if (vowelTurn)
  43. {
  44. p = rGen.Next(22,chars.Length);
  45. wordStr += chars[p];
  46. vowelTurn = !vowelTurn;
  47. }
  48. else if (!vowelTurn)
  49. {
  50. p = rGen.Next(0,22);
  51. wordStr += chars[p];
  52. vowelTurn = !vowelTurn;
  53. }
  54. }
  55. TwiceUsedWord();
  56. textBox2.Text += textBox1.Text + " " + wordStr + Environment.NewLine;
  57. textBox1.Clear();
  58. }
  59. private void выбратьСловарьToolStripMenuItem_Click(object sender,EventArgs e)
  60. {
  61. openFileDialog1.ShowDialog();
  62. if (openFileDialog1.FileName == null) return;
  63. fileName = openFileDialog1.FileName;
  64. label1.Text = "Выб. словарь " + fileName;
  65. }
  66. private void открытьToolStripMenuItem_Click(object sender,EventArgs e)
  67. {
  68. System.Diagnostics.Process.Start(
  69. "Wordpad",fileName);
  70. }
  71. private void сохранитьToolStripMenuItem_Click(object sender,EventArgs e)
  72. {
  73. try
  74. {
  75. var writer = new StreamWriter(
  76. fileName,true,Encoding.UTF8);
  77. writer.Write(textBox2.Text);
  78. writer.Close();
  79. textBox2.Clear();
  80. progIsModified = false;
  81. }
  82. catch (Exception badCase)
  83. {
  84. MessageBox.Show(badCase.Message,"Ошибка",
  85. MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
  86. }
  87. }
  88. private void textBox1_KeyDown(object sender,KeyEventArgs e)
  89. {
  90. if (e.KeyCode == Keys.Enter) WordsGen();
  91. if (textBox1.Text != null) progIsModified = true;
  92. }
  93. private void TwiceUsedWord(KeyEventArgs e)
  94. {
  95. var reader = new StreamReader(
  96. fileName,Encoding.UTF8);
  97. while (!reader.EndOfStream)
  98. {
  99. string line = reader.ReadLine();
  100. if (line.StartsWith(textBox1.Text) ||
  101. textBox2.Text.StartsWith(textBox1.Text))
  102. {
  103. GenerateButton.Enabled = false;
  104. e.Handled = true;
  105. MessageBox.Show("Данное слово уже существует","Ошибка",
  106. MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
  107. }
  108. }
  109. }
  110. private void GenerateButton_Click(object sender,EventArgs e)
  111. {
  112. WordsGen();
  113. }
  114. }
  115. }

Решение задачи: «Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()...»

textual
Листинг программы
  1. KeyEventArgs ke = new KeyEventArgs(Keys.None);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы