请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

辉啊

注册会员

2

主题

6

帖子

18

积分

注册会员

积分
18
  • 879

    金币

  • 2

    主题

  • 6

    帖子

最新发帖
辉啊
注册会员   /  发表于:2021-10-19 10:00  /   查看:2735  /  回复:6
1000金币
本帖最后由 辉啊 于 2021-10-19 14:41 编辑

单纯HTML执行,完全正常。就是嵌套到C#运行就下拉按钮点击不了 ,鼠标可滚动选择下拉框的值

最佳答案

查看完整内容

终于查出原因了,应该是WebBrowser的加载不同步的原因。 虽然C#在加载HTML(webBrowser.Navigate(mStrHtmlPath);)时有调用了 Application.DoEvents(); 但是在给页面传值webBrowser.Document.InvokeScript("searchData", framWoInfoArr)后,出现了这种页面假死的现象 传值后需再调用下 Application.DoEvents(); 下拉框就点得出来了 Application.DoEvents();

6 个回复

倒序浏览
最佳答案
最佳答案
辉啊
注册会员   /  发表于:2021-10-19 10:00:20
来自 5#
终于查出原因了,应该是WebBrowser的加载不同步的原因。
虽然C#在加载HTML(webBrowser.Navigate(mStrHtmlPath);)时有调用了 Application.DoEvents();
但是在给页面传值webBrowser.Document.InvokeScript("searchData", framWoInfoArr)后,出现了这种页面假死的现象
传值后需再调用下 Application.DoEvents();  下拉框就点得出来了


Application.DoEvents();
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 10:33:43
2#
你说的浮框里的select下拉框是指什么,这个似乎和C1没有什么关系

如果只是说webbrowser 中来加载html页面,其中的select元素无法下拉的话,不排除是webbrowser 本身的问题,这个控件时间太久远了,是基于很早版本的IE

建议不如尝试一下微软新的webview2
https://docs.microsoft.com/en-us ... et-started/winforms
回复 使用道具 举报
辉啊
注册会员   /  发表于:2021-10-19 11:41:41
3#
Richard.Ma 发表于 2021-10-19 10:33
你说的浮框里的select下拉框是指什么,这个似乎和C1没有什么关系

如果只是说webbrowser 中来加载html页 ...

刚测试了个case(取消C#传值) 发现可以用了,但是不知道啥原因
本来C#传递objects的值给html里的函数里的变量,是这样实现的
C#里:webBrowser.Document.InvokeScript("searchData", framWoInfoArr);
JS里:function searchData(createFrameArr, woInfoArr, opeStatus, synchroReportFlg) {...}

将C#的webBrowser.Document.InvokeScript("searchData", framWoInfoArr);注释掉
将数据事先存在本地文本里,HTML调用  这样下拉框就可以点击出来了
<!DOCTYPE html>
<html>
<head>
    <title>Wo Sequence Adjustment Or Confirmation</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="ui/jquery-ui.theme.css">
    <link rel="stylesheet" href="css/ef2nb01-ui.css">
    <script type="text/javascript" src="ui/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="ui/jquery-ui.js"></script>
    <script type="text/javascript" src="js/ef2nb01-ui.js"></script>
    <script type="text/javascript" src="js/ef2nb01_testData.js"></script><!--测试数据用js-->
    <script type="text/javascript" src="js/ef2nb01_test_marge.js"></script><!--测试数据用js-->
</head>
<body>
    <div id="page_div" style="left:31px;position:absolute;z-index:18;">
    </div>
</body>
</html>
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 12:29:40
4#
确实对这块也不熟悉。爱莫能助了,可以在一些.NET社区问问看有没有人了解
回复 使用道具 举报
辉啊
注册会员   /  发表于:2021-10-19 14:42:37
6#
解决啦
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-19 16:04:01
7#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部