public Form2(string str)
{
this.Text = str
}
那么你在主窗体中创建子窗体就可以这样:
Form2 form2 = new Form2("我是窗体2")
form2.Show()
值就传过去了。
2、只要不是静态类,那么类就可以有无数个实例,他们都是独立的,既然是独立的自然不会重复,因为你没有办法在同一个方法里面使用同一个名称来创建2个实例,比如下面的代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2("我是窗体2")
form2.Show()
Form2 form2 = new Form2("我是窗体2")
form2.Show()
}
你这样做不可能通过编译,会告诉你:已在此范围定义了名为“form2”的局部变量。你只要不在同一个方法内定义就行了,方法内定义的都属于局部变量,离开了方法体他们也就不存在了。
如果你想创建多个窗体而且能记住他们并且在整个类里面都能调用,那你得在类里面定义它,而不是方法中,比如:
Form2[] form2 = new Form2[5]
使用数组定义5个窗体,然后你可以分别把form2的实例赋给他们,这样你下次要调用某个你创建的form2实例的时候直接用form2[x]就可以访问到它了,定义在了类中,所以它在整个类中都存在,不是局部的变量。
最后在讲一下,传值到子窗体采用构造函数或者属性都是允许的,我看你需要先了解构造函数和属性的定义,把这些弄清楚了应该能明白了,以后如果子窗体给主窗体传值那么就需要用到事件,现在对你来说不是学习事件的最好时间,慢慢来吧,先弄清楚基本概念。
你在你的Book类中加一些公开的变量。如:BookNamepublic void Main_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndex = 0
//comboBox2.SelectedIndex = 0
}
public void search_Click(object sender, EventArgs e)
{
Book formShow = new Book()
formShow.BookName=this.BookName//然后加上这个语句。就是传给子窗体了。假设this.BookName是你的主窗体中的一个变量。
this.Hide()
formShow.Show()
ListBox listBox1 = new ListBox()
if (comboBox1.SelectedIndex >= 0)
{
//listBox1.Items.Add(comboBox1.Text)
//comboBox1.Text = ""
//listBox1.Items.Add(comboBox2.Text)
//comboBox2.Text = ""
}
else
{
MessageBox.Show("没有选择要预订的宾馆或价格范围", "提示框")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)