C#winform中如何点击一个窗体的button,向另一个窗体动态添加picbox控件
有两个窗体一个主窗体main,另一个窗体adddesk,如何实现当点击adddesk一个btnadd时候,main窗体就会自动的添加一个button控件...
有两个窗体一个主窗体main,另一个窗体adddesk,如何实现当点击adddesk一个btnadd时候,main窗体就会自动的添加一个button控件
展开
展开全部
不建议将main作为参数传入其他子窗体,使用Owner属性即可
这样写:
假设你在main窗体中这样打开adddesk窗体:
Adddesk adddesk=new Adddesk(); //创建新的Adddesk窗体
adddesk.Owner=this; //使adddesk的所有者窗体为main
adddesk.show(); //显示adddesk
在adddesk窗体中某按钮的click事件下写:
Owner.Controls.Add(你要添加的控件); //在main中添加控件
你可能也会需要点击后控制main中已有的控件?这样:(假设main窗体中已有name为"button1"的按钮)
Owner.Controls["button1"].Visible=true; //同理应用于其他控件和其属性
//及成员方法
此方式同样适用于多个子窗体控制主窗体
这样写:
假设你在main窗体中这样打开adddesk窗体:
Adddesk adddesk=new Adddesk(); //创建新的Adddesk窗体
adddesk.Owner=this; //使adddesk的所有者窗体为main
adddesk.show(); //显示adddesk
在adddesk窗体中某按钮的click事件下写:
Owner.Controls.Add(你要添加的控件); //在main中添加控件
你可能也会需要点击后控制main中已有的控件?这样:(假设main窗体中已有name为"button1"的按钮)
Owner.Controls["button1"].Visible=true; //同理应用于其他控件和其属性
//及成员方法
此方式同样适用于多个子窗体控制主窗体
展开全部
给你个思路,在主窗体Main中定义一个公有的方法,比如
public void AddButton()
{
Button btn = new Button();
btn.Text = "btn1";
this.Controls.Add(btn);
}
然后把自己作为参数传给窗体AddDesk,在AddDesk的构造函数里写:
public AddDesk(Main main)
{
this.main = main;
}
记住 这个this.main是你实现申请的一个Main类型的变量
private Main main;
这样,在主窗体弹出AddDesk窗体的语句就这么写:
AddDesk addDesk = new AddDesk(this); //把自己作为参数传给AddDesk窗体
addDesk.ShowDialog();
在AddDesk窗体里点击btnAdd按钮里写上:
private void btnAdd_Click(object sender,EventArgs e)
{
this.main.AddButton();
}
你要的效果就实现了
public void AddButton()
{
Button btn = new Button();
btn.Text = "btn1";
this.Controls.Add(btn);
}
然后把自己作为参数传给窗体AddDesk,在AddDesk的构造函数里写:
public AddDesk(Main main)
{
this.main = main;
}
记住 这个this.main是你实现申请的一个Main类型的变量
private Main main;
这样,在主窗体弹出AddDesk窗体的语句就这么写:
AddDesk addDesk = new AddDesk(this); //把自己作为参数传给AddDesk窗体
addDesk.ShowDialog();
在AddDesk窗体里点击btnAdd按钮里写上:
private void btnAdd_Click(object sender,EventArgs e)
{
this.main.AddButton();
}
你要的效果就实现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得你把主窗体静态吧。
打开主窗体时候判断下是否为null,null就new一下打开。不然直接打开。
这样程序任何地方都可以直接使用他
打开主窗体时候判断下是否为null,null就new一下打开。不然直接打开。
这样程序任何地方都可以直接使用他
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主窗体main
public void AddButton()
{
Button btn = new Button();
btn.Text = "btn1";
this.Controls.Add(btn);
}
另一个窗体adddesk
main.AddButton;
public void AddButton()
{
Button btn = new Button();
btn.Text = "btn1";
this.Controls.Add(btn);
}
另一个窗体adddesk
main.AddButton;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
button btn=new button()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询