C # Отображение текста (включая текст из текстового поля) при нажатии кнопки - PullRequest
0 голосов
/ 02 октября 2018

Программа, представленная ниже, является неполным решением для задания, которое создает отображение, которое дает пользователю несколько вариантов того, как будет отображаться какой-либо текст.Существует поле со списком, которое можно установить на «Полужирный» или «Курсив», переключатели для шрифта малого или большого размера, а также текстовое поле, в котором пользователь может ввести название столицы.Есть три кнопки с надписью Франция, Англия и Мексика.При нажатии кнопки должен отображаться текст, отформатированный в соответствии с параметрами, выбранными пользователем.Например, предположим, что пользователь вводит Париж в текстовом поле, выбирает жирный шрифт из комбинированного окна и выбирает переключатель большого размера.Когда нажата кнопка «Франция», текст должен отображаться на этикетке с надписью « Столица Франции - Париж ».

Беда в том, что слово Paris должно быть взято из текстового поля, и я не уверен, как сделать так, чтобы это было частью строки в метке.В приведенном ниже коде я планировал создать для каждой кнопки несколько операторов IF для каждой возможной комбинации стилей текста (жирный / большой, жирный / маленький, курсив / большой, курсив / маленький).Но я не уверен в синтаксисе для этого и не уверен, как включить текст из текстового поля как часть строки.Буду очень признателен за любую помощь или руководство о том, как заставить кнопки отображать соответствующее сообщение.

Следует отметить, что строки оператора IF в приведенном ниже коде помечены в Visual Studio, но полезной информации предоставлено не было.,

namespace HW_Ch9_20
{
public partial class Form1 : Form
{
    private Button france = new Button();
    private Button england = new Button();
    private Button mexico = new Button();

    private RadioButton large = new RadioButton();
    private RadioButton small = new RadioButton();

    private ComboBox style = new ComboBox();

    private TextBox capital = new TextBox();

    private Label styleLable = new Label();
    private Label sizeLable = new Label();
    private Label enterCapital = new Label();
    private Label display = new Label();



    public Form1()
    {
        france.Text = "France";
        england.Text = "England";
        mexico.Text = "Mexico";
        large.Text = "Large";
        small.Text = "Small";
        //style.Text = "Select a style";
        styleLable.Text = "Style";
        sizeLable.Text = "Size";
        enterCapital.Text = "Enter capital";
        capital.Text = "";
        display.Text = "";


        Size = new Size(800, 400);
        display.Size = new Size(250, 200);

        france.Location = new Point(250, 30);
        england.Location = new Point(330, 30);
        mexico.Location = new Point(410, 30);
        large.Location = new Point(350, 250);
        small.Location = new Point(350, 275);
        style.Location = new Point(80, 68);
        styleLable.Location = new Point(40, 70);
        capital.Location = new Point(560, 150);
        sizeLable.Location = new Point(310, 265);
        enterCapital.Location = new Point(580, 130);
        display.Location = new Point(240, 80);

        style.Items.Add("Bold");
        style.Items.Add("Italic");

        Controls.Add(france);
        Controls.Add(england);
        Controls.Add(mexico);
        Controls.Add(large);
        Controls.Add(small);
        Controls.Add(style);
        Controls.Add(capital);
        Controls.Add(styleLable);
        Controls.Add(sizeLable);
        Controls.Add(enterCapital);
        Controls.Add(display);


        france.Click += new EventHandler(france_Click);
        england.Click += new EventHandler(england_Click);
        mexico.Click += new EventHandler(mexico_Click);

        string capitalText = capital.Text;

        void france_Click(Object sender, EventArgs e)
        {
            if(large.Checked && style.SelectedText == "Bold")
                private Font largeBold = new Font(("The capital of France is {0}", capitalText), 24, FontStyle.Bold);

        }

        void england_Click(Object sender, EventArgs e)
        {

        }

        void mexico_Click(Object sender, EventArgs e)
        {

        }

    }
}


}

1 Ответ

0 голосов
/ 02 октября 2018

Как я уже упоминал в комментариях, ваш оператор if не компилируется, потому что вы объявляете largeBold как private, а модификаторы доступа недопустимы для переменных внутри методов.

Вот как я 'сделаем это:

void france_Click(Object sender, EventArgs e)
{
    int fontSize = 24;
    FontStyle fontStyle = FontStyle.Regular | FontStyle.Bold;

    // Set the font size
    if (largeRadioButton.Checked) // Large font size
    {
        fontSize = 24;
    }
    else if (smallRadioButton.Checked) // Small font size
    {
        fontSize = 16;
    }

    // Set the font style and font weight
    if (styleComboBox.SelectedText == "Bold") // Bold font
    {
        fontStyle = FontStyle.Bold;
    }
    else if (styleComboBox.SelectedText == "Italic") // Italic font
    {
        fontStyle = FontStyle.Italic;
    }

    // Apply the font style.
    displayLabel.Font = new Font("Arial", fontSize, fontStyle);
    // Set the text.
    displayLabel.Text = String.Format("The capital of France is {0}", capitalTextBox.Text);

}

Здесь вы просто просматриваете то, что установлено вашими элементами управления, и устанавливаете размер шрифта, стиль и вес displayLabel, прежде чем отобразить текст на этикетке.

Обратите внимание, что я добавил постфикс к переменным, который указывает, какой тип управления они используются для лучшей читабельности.Однако это всего лишь мое личное предпочтение.

...