当前位置:编程学习 > C#/ASP.NET >>

webBrowser如何获取滚动条位置?

网上搜了一遍,说是可以用API,这个东西不明白,有没有比较详细的资料,说是要[DllImport("user32.dll", EntryPoint="GetScrollPos")],具体怎么使用,控制句柄是哪些。

另外我找到一种方法,是我以前在直接做网页时用到的,在网页上显示浮动图标可以使用一个全页面的辅助DIV,设置overflow:auto;,然后通过scrollTop获取滚动条的位置,然后设置onclick="b=document.getElementById(('zhutie'));c=b.scrollTop;window.external.f('hf" + i + "',c);“
然后用我上次问到的winform里面点击webBrowser里的按钮执行c#程序的方法
[ComVisible(true)]
        public class scriptmanager
        {
            private Form4 mform;
            public scriptmanager(Form4 form)
            {
                mform = form;
            }
            public void f(string m,int i)
            {
                mform.huifu(m,i);
            }
        }
        public void huifu(string m,int i)
        {
            //MessageBox.Show("随便做点什么看看效果");
            webBrowser1.Controls.Clear();
            HtmlElement fubiao=webBrowser1.Document.GetElementById(m);
            int x = webBrowser1.Width / 2 - 250;
            int y = fubiao.OffsetRectangle.Y + fubiao.OffsetRectangle.Height-i;
            int y1 = webBrowser1.AutoScrollOffset.Y;
            //MessageBox.Show(fubiao.OffsetRectangle.ToString());
            //MessageBox.Show(i.ToString());
            Panel pn = new Panel();
            RichTextBox rtb = new RichTextBox();
            rtb.Dock = DockStyle.Top;
            pn.Controls.Add(rtb);
            pn.Width = 500;
            pn.Location = new Point(x, y);
            //pn.SendToBack(); webBrowser1.Document.Window.ScrollTo(0, 100);
            webBrowser1.Controls.Add(pn);
        }
能达到目的,但出现一个意外的问题,在点击该span之后出现浮标后移开后背景色不正常变回原来的颜色,这个div是这样的:
<div class='huifu'><div"
+ "onmouseover=\"c=this.style.backgroundColor;this.style.backgroundColor='whitesmoke';a=document.getElementById(('pf" + n + "'));a.style.visibility='visible';b=document.getElementById(('hf" + n + "'));b.style.visibility='visible';\"onmouseout=\"this.style.backgroundColor=c;a=document.getElementById(('pf" + n + "'));a.style.visibility='hidden';b=document.getElementById(('hf" + n + "'));b.style.visibility='hidden';\">"
+”内容包含上面的这个这个能点击相应的元素"
+ "</div>"
原先很正常的为什么现在不行了呢,什么原因? --------------------编程问答-------------------- 也在学用Wb,不懂帮顶。 --------------------编程问答-------------------- 谁来帮我看一下,第二种方法我错在哪里,出现意外情况的原因是什么?两种方法哪一个效率高,第一种方法具体如何实现,如果有例子可以给个例子,或者告诉我怎么搜索需要的帮助 --------------------编程问答-------------------- 你是说你有一个wnforms程序,里面有个webbrowser控件,你要取它的滚动条位置,还是说你的网页中需要取得滚动位置。 --------------------编程问答--------------------
引用 3 楼 caozhy 的回复:
你是说你有一个wnforms程序,里面有个webbrowser控件,你要取它的滚动条位置,还是说你的网页中需要取得滚动位置。
是说wnforms程序,里面有个webbrowser控件,要取它的滚动条位置 --------------------编程问答-------------------- 那显然你应该用第一种方式,第二种方式和你的问题毫无关系。 --------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
那显然你应该用第一种方式,第二种方式和你的问题毫无关系。

你说的也许不对,我昨天就是专门在搜第一种方式,结果总是message出来的是0,我很郁闷,不知道错在哪里,反倒是第二种方法居然莫名其妙的好了,我那个试不出效果回头想看看这个结果发现不知道是改了哪里,问题不存在了,很正常的显示,我今天想来看看,究竟是一个什么细微的地方改动造成的。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,