C#标签文字卡住了

时间:2016-09-25 19:39:30

标签: c# function label

我一直在培训课程和遗产。现在我面临一个问题,printbase方法对我的代码不起作用,标签文本不会改变我做的错误是什么? 他们这个代码如何工作的方法是新狗创建一个新的狗,其名称基于组合框项目,因此它使用它的名称并生成数字并召唤某种称为树皮的方法,我应该点击它调用方法的按钮打印基础并更改标签的文本,但它不起作用。任何想法?

   public partial class Form1 : Form
{
    class animal : Form1
    {
        public string name;
        public int age;
        public string action;
        public void printbase(string whatname, int whatage, string whataction)
        {
            namelabel.Text = whatname;
            agelabel.Text = whatage.ToString();
            actionlabel.Text = whataction;
        }
    }
    class dog : animal
    {
        public string dogaction;
        public void bark()
        {
            dogaction = "wuff";
        }

        public void newdog()
        {              
            Random x = new Random();             
            string names;
            names = dogscombo.Text;
            dog hey = new dog();
            hey.name = names;
            hey.age = x.Next(1,10);
            bark();
            hey.action = dogaction;
            printbase(hey.name, hey.age, hey.action);

        }
    }

    public Form1() 
    {           
        InitializeComponent();
    }          
    private void getbutton_Click(object sender, EventArgs e)
    {  
        switch (dogscombo.SelectedIndex)
        {
            case (0):
                dog u = new dog();
                u.newdog();                                 
                break;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

你应该创造独立的类动物而不是继承它的类狗。 在您的情况下,类动物基于Form1类。因此,程序创建新表单但不向用户显示。 如果你没有t intend to create new form, don使用类Form1作为类动物的基类。如果你想打算,而不是调用方法向用户显示新创建的表单。 这段代码可以使用:

    private void getbutton_Click_1(object sender, EventArgs e)
    {
        switch (dogscombo.SelectedIndex)
        {
            case (1):
                dog u = new dog();
                u.newdog();
                u.Show();
                break;
        }

    }