2011-09-29 76 views
1

Sir, 我有一个拆分容器,在右侧面板中我有一个usercontrol。在用户控件中,我有几个按钮,如视图,新建,编辑等。根据左侧导航窗格上单击的链接,控件将打开一个窗体。现在当我点击用户控件的视图按钮时,我应该在它下面打开一个新窗体。如何在click事件中获取splitcontainer的上下文?如果我想要检索表单值以保存在数据库中,当我单击用户控件中的保存按钮时,如何执行?获取用户控件点击事件中的splitcontainer上下文

+1

第二个问题(关于保存)做一个单独的问题,并确保提供更多的上下文和代码。一句话不起作用! –

回答

0

若要获取点击事件的按钮:

Button clickedButton = (Button)sender; 

为了让您的按钮的父(如果是的SplitContainer,你将不得不使用Parent属性3次,因为第一个将得到您的用户控件,第二个 - SplitPanel,它不具有Name属性,第三的左侧面板 - 如果你希望你SplitPanel,和第4,你的表单名称)

string splitPanemName = clickedButton.Parent.Parent.Parent.Name; 

...或者你可以只需获取整个SplitPanel对象:

SplitPanel currentSplitPanel = (SplitPanel)clickedButton.Parent.Parent.Parent; 

...或窗体对象:

Form currentSplitForm = (Form)clickedButton.Parent.Parent.Parent.Parent; 

要做到这一点,你必须确保你的组成形式,所以你可以在正确的地方得到正确的控制。

1

A Click事件有一个sender参数,它是点击按钮。您可以使用按钮的名称来解决应打开哪个表单。