В C #, как сделать текст моей кнопки динамическим? - PullRequest
0 голосов
/ 23 сентября 2010

Я новичок, когда дело доходит до кодирования C #, поэтому, пожалуйста, не будьте слишком резкими со мной. Я уже писал код на ActionScript и заметил, что он очень похож.

В любом случае, мне нужно создать простое приложение, в котором 2 символа дают друг другу "деньги" ... или целые. Имя персонажа должно быть динамическим, а кнопки должны воспроизводить названия.

Пожалуйста, помогите! Это то, что я до сих пор:

namespace Lab_2
{
    public partial class Form1 : Form
    {
        Guy firstName;
        Guy secondName;
        int bank = 100;

        public Form1()
        {
            InitializeComponent();

            firstName = new Guy() { Cash = 100, Name = "Joe" };
            secondName = new Guy() { Cash = 50, Name = "Bob" };

            firstName = textBox1.Text;
            secondName = textBox2.Text;

            UpdateForm();
        }

        public void UpdateForm()
        {
            name1CashLabel.Text = firstName.Name + " has $" + firstName.Cash;
            name2CashLabel.Text = secondName.Name + " has $" + secondName.Cash;
            bankCashLabel.Text = "The bank has $" + bank;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            button1.Text = "Give $10 to " + firstName.Name;

            if (bank >= 10)
            {
                bank -= firstName.ReceiveCash(10);
                UpdateForm();
            }
            else
            {
                MessageBox.Show("The bank is out of money.");
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            bank += secondName.GiveCash(5);
            UpdateForm();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            secondName.ReceiveCash(firstName.GiveCash(10));
            UpdateForm();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            firstName.ReceiveCash(secondName.GiveCash(5));
            UpdateForm();
        }

        private void name1_Click(object sender, EventArgs e)
        {
            firstName.Name = textBox1.Text;
        }
    }
}

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Кажется, что ключом является метод name1_Click, который обновляет имя объекта firstName до содержимого текстового поля.Как только вы сделаете это, вы захотите обновить заголовок кнопки.

Я создам новый метод:

public void RefreshButtonCaptions()
{
    button1.Text = "Give $10 to " + firstName.Name;
    button2.Text = "Give $10 to " + secondName.Name;
}

И затем вызову его из name1_Click:

private void name1_Click(object sender, EventArgs e)
{
    firstName.Name = textBox1.Text;
    RefreshButtonCaptions()
}
0 голосов
/ 23 сентября 2010

Если вы хотите просто показать новые имена на кнопках, вы можете обновить их так просто, как:

private void name1_Click(object sender, EventArgs e) 
{ 
    firstName.Name = textBox1.Text; 
    button1.Text = "Give $10 to " + firstName.Name;
}

И, возможно, то же самое для name2_click (если есть):

private void name2_Click(object sender, EventArgs e) 
{ 
    secondName.Name = textBox2.Text; 
    button2.Text = "Give $10 to " + secondName.Name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...