在用户控件单击事件中获取splitcontainer上下文

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

要在click事件中获取按钮:

Button clickedButton = (Button)sender; 

要获取按钮的父级(如果是SplitContainer,则必须使用Parent属性3次,因为第一个将获得您的UserControl,SplitPanel的第二个左侧面板,它没有Name属性,第三个 – 您的SplitPanel,第四个,如果您需要,您的表单名称)

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

…或者您可以获得整个SplitPanel对象:

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

…或表单对象:

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

为此,您必须确保表单的组成,以便在正确的位置获得正确的控件。

Click事件具有sender参数,即单击的按钮。 您可以使用按钮的名称来解析应该打开哪个表单。