Example #1
0
    private void FillTrasnslationBoxes(WordsAndTextsData data)
    {
        LinkedListWithTranslations translations;

        // Получение списка переводов
        if (WordsCheckBox.Checked)
        {
            translations = data.GetWordOrTextTranslation(WordsOrTextsComboBox.Text, WordsAndTextsData.WordOrText.Word);
        }
        else
        {
            translations = data.GetWordOrTextTranslation(WordsOrTextsComboBox.Text, WordsAndTextsData.WordOrText.Text);
        }
        // Если нет поля для перевода, то добавляем его
        if (TranslationTextBoxes.Count < translations.Count)
        {
            while (TranslationTextBoxes.Count < translations.Count)
            {
                AddTranslationTextBox(data);
            }
        }
        // Если поле есть, но оно невидимо, то делаем его видимым
        if (translation_text_boxes_visible < translations.Count)
        {
            while (translation_text_boxes_visible < translations.Count)
            {
                TranslationTextBoxes[translation_text_boxes_visible].Visible        = true;
                DeleteTranslationButton[translation_text_boxes_visible - 1].Visible = true;
                ++translation_text_boxes_visible;
            }
        }
        // Если полей слишком много, то делаем их невидимыми
        else if (translation_text_boxes_visible > translations.Count)
        {
            while (translation_text_boxes_visible > translations.Count)
            {
                --translation_text_boxes_visible;
                TranslationTextBoxes[translation_text_boxes_visible].Visible = false;
                if (translation_text_boxes_visible > 0)
                {
                    DeleteTranslationButton[translation_text_boxes_visible - 1].Visible = false;
                }
            }
        }
        int it = 0;

        // Заполняем поля с переводом
        foreach (var translation in translations)
        {
            TranslationTextBoxes[it++].Text = translation;
        }
    }
Example #2
0
    private void AddTranslationTextBox(WordsAndTextsData data)
    {
        int text_box_y_pos = TranslationTextBoxes[TranslationTextBoxes.Count - 1].Location.Y;

        TranslationTextBoxes.Add(new TextBox());
        TranslationTextBoxes[TranslationTextBoxes.Count - 1].Font     = text_font;
        TranslationTextBoxes[TranslationTextBoxes.Count - 1].Width    = 550;
        TranslationTextBoxes[TranslationTextBoxes.Count - 1].Location = new Point(167, text_box_y_pos + 42);
        TranslationTextBoxes[TranslationTextBoxes.Count - 1].Visible  = false;
        TranslationPanel.Controls.Add(TranslationTextBoxes[TranslationTextBoxes.Count - 1]);

        if (DeleteTranslationButton == null)
        {
            DeleteTranslationButton = new List <Button>();
        }
        DeleteTranslationButton.Add(new Button());
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Font     = button_font;
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Text     = minus;
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Width    = 34;
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Height   = 34;
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Location = new Point(726, text_box_y_pos + 41);
        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Visible  = false;
        int text_box_index = TranslationTextBoxes.Count - 1;

        DeleteTranslationButton[DeleteTranslationButton.Count - 1].Click += (sender, e) =>
        {
            bool success = false;
            if (WordsOrTextsComboBox.Text != string.Empty && TranslationTextBoxes[text_box_index].Text != string.Empty)
            {
                var translation_list = data.GetWordOrTextTranslation(WordsOrTextsComboBox.Text, WordsCheckBox.Checked ? WordsAndTextsData.WordOrText.Word : WordsAndTextsData.WordOrText.Text);
                if (translation_list != null && translation_list.Count > 1)
                {
                    foreach (var translation in translation_list)
                    {
                        if (translation.Equals(TranslationTextBoxes[text_box_index].Text, System.StringComparison.CurrentCultureIgnoreCase))
                        {
                            success = translation_list.Remove(translation);
                            break;
                        }
                    }
                }
                if (success)
                {
                    MessageBox.Show(translation_delited);
                }
                else
                {
                    MessageBox.Show(translation_delited_error, error);
                }
            }
            else if (WordsOrTextsComboBox.Text == string.Empty)
            {
                MessageBox.Show(WordsCheckBox.Checked ? word_was_not_selected : text_was_not_selected, error);
            }
            else if (TranslationTextBoxes[text_box_index].Text == string.Empty)
            {
                MessageBox.Show(field_dont_have_translation, error);
            }
            FillTrasnslationBoxes(data);
        };
        TranslationPanel.Controls.Add(DeleteTranslationButton[DeleteTranslationButton.Count - 1]);
    }