表单承继

 

大家能够用表单承袭的办法,减弱代码冗余。

以下是 基类 Form1

class TestForm(forms.Form):
    name = forms.CharField(max_length=6)
    age = forms.IntegerField()

# 继承了 TestForm
class TestForm2(TestForm):
    sex = forms.CharField(required=False)

// 委托、事件是 public 和全局的

近期 TestForm二 享有持续的来的 name、age 字段,和自身的 sex 字段。大家在
shell 里看看:

public delegate void ButtonClickdHandle(object sender, 伊夫ntArgs
e);//定义委托
public event ButtonClickdHandle UserControlButtonClicked;//定义事件

f = TestForm2()
print(f.as_ul())
>>> <li><label for="id_name">Name:</label> <input id="id_name" maxlength="6" name="name" type="text" required /></li>
    <li><label for="id_age">Age:</label> <input id="id_age" name="age" type="number"required /></li>
    <li><label for="id_sex">Sex:</label> <input id="id_sex" name="sex" type="text" /></li>

 

在子类中,能够经过设置值为 None 来删除从父类中承继的字段。举例:

public void button1_Click(object sender, EventArgs e)
{//button一 控件定义为 Public 属性
  UserControlButtonClicked(sender, e);//抛出事件
}

class TestForm(forms.Form):
    name = forms.CharField(max_length=6)
    age = forms.IntegerField()

# 继承了 TestForm
class TestForm2(TestForm):
    age = None
    sex = forms.CharField(required=False)

我们在 shell 里看看:

 

f = TestForm2()
print(f.as_ul())
>>> <li><label for="id_name">Name:</label> <input id="id_name" maxlength="6" name="name" type="text" required /></li>
    <li><label for="id_sex">Sex:</label> <input id="id_sex" name="sex" type="text" /></li>

以下是接二连三自 Form一的 类 Form2

private void Form2_Load(object sender, EventArgs e)
{
  this.UserControlButtonClicked += new
ButtonClickdHandle(buttonClick);//前面是委托
  this.Text = “form2”;
}

private void buttonClick(object sender, EventArgs e)
{
  MessageBox.Show(“1”);
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图