我一直在培训课程和遗产。现在我面临一个问题,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;
}
}
}
答案 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;
}
}