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控件,你要取它的滚动条位置,还是说你的网页中需要取得滚动位置。 --------------------编程问答-------------------- 是说wnforms程序,里面有个webbrowser控件,要取它的滚动条位置 --------------------编程问答-------------------- 那显然你应该用第一种方式,第二种方式和你的问题毫无关系。 --------------------编程问答--------------------
你说的也许不对,我昨天就是专门在搜第一种方式,结果总是message出来的是0,我很郁闷,不知道错在哪里,反倒是第二种方法居然莫名其妙的好了,我那个试不出效果回头想看看这个结果发现不知道是改了哪里,问题不存在了,很正常的显示,我今天想来看看,究竟是一个什么细微的地方改动造成的。
补充:.NET技术 , ASP.NET