本人用C#开发了一个无界面组件,实现了类似VS.NET IDE窗体的菜单效果。
利用此组件时,在调用该组件的主界面中调用组件的公用方法来处理容器中的菜单达到自定义菜单效果,该公用方法包含一个窗体的句柄参数。
本人想要在组件中获得组件所在窗体的句柄(而不是需要通过外部调用方法并传入参数的方式来解决),以便在组件中处理获得窗体中的菜单。
不知道如何才能实现呢?
下面附上部分代码:
namespace OfficeStyleMenu
{
#region 菜单组件类
/// <summary>
///OfficeMenus菜单组件
/// </summary>
[ProvideProperty( "ImageIndex", typeof(MenuItem)) ]
[ToolboxBitmap (typeof(OfficeMenus), "OfficeStyleMenu.OfficeMenus.bmp")] public class OfficeMenus : Component, IExtenderProvider
{
                  #region 菜单组件类的构造函数(传入接受该组件的容器)
/// <summary>
/// 菜单组件的构造函数
/// </summary>
/// <param name="container"></param>
public OfficeMenus(System.ComponentModel.IContainer container):this() 
{
//将该组件加入到容器
container.Add(this);
}
#endregion
         }      //调用窗体中初始化组件的代码      this.officeMenus1 = new OfficeStyleMenu.OfficeMenus(this.components);      //调用窗体中将菜单转换成自定义菜单的代码
      private void btnNormal_Click(object sender, System.EventArgs e)
      {
        officeMenus1.OfficeStyleMenu(this);       }