我做了一个WINFROM的游戏盒子应用程序 , 在WINFORM中嵌套了一个网页 , 我要怎么实现点击网页链接地址的时候弹出一个指定的WINFROM窗口并且传递一个值给WIN窗口 , 谢谢 

解决方案 »

  1.   

    拦截 WebBrowser 的 NewWindow 事件。
      

  2.   

    private void brow_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    {
    if (e.Url.AbsoluteUri.StartsWith("command:"))
    {
    e.Cancel = true; string[] val = e.Url.LocalPath.Split('|'); if (val[0] == "add")
    {
    CB_工具放置单_添加 frm = new CB_工具放置单_添加(m_Operate, val[2], val[3]); if (frm.ShowDialog() == DialogResult.OK)
    {
    if (!m_Spare.ContainsKey(val[1]))
    {
    DataXml data = new DataXml();
    data.Commands.Add(new CommandXml("SELECT cSpareCode, cPaperNo FROM tSpare WHERE iSpareID = " + frm.Spare)); ReturnData rtn = m_Operate.GetData(data.GetXml()); if (rtn.State != EDataTransfersState.Succeed)
    {
    return;
    } DataRow dr = rtn.DTS.Tables[0].Rows[0]; m_Spare[val[1]] = new SpareQty(frm.Spare, dr[0].ToString(), dr[1].ToString(), 0, frm.Spec);
    } m_Spare[val[1]].Qty += frm.Qty;
    }
    }
    else if (val[0] == "delete")
    {
    m_Spare.Remove(val[1]);
    }
    else if (val[0] == "clear")
    {
    DataXml data = new DataXml();
    data.Commands.Add(new CommandXml("DELETE tAutomatSpare WHERE cMac = '" + m_ID + "' AND oLay = '" + val[1] + "' AND iQty = 0"));
    m_Operate.UpdataData(data.GetXml());
    } UpdateHtml();
    } #endregion
    } private void UpdateHtml()
    {
    brow.Navigate(CG_全局.Function.GetHtml(doc.InnerXml, Properties.Resources.Automat));
    }
      

  3.   

    一段示例,我写的,主要部份是这个
    点击网面连接的时候,用这个事件
    private void brow_Navigating(object sender, WebBrowserNavigatingEventArgs e)
    事件里e.Url是点的连接地址
    e.Cancel = true;是告诉IE控制不要再处理连接了CB_工具放置单_添加 frm = new CB_工具放置单_添加(m_Operate, val[2], val[3]);
    frm.ShowDialog() == DialogResult.OK;
    这个是可以弹一个新的窗口