一.Winform使用Webview2(Edge浏览器核心) 创建demo(Demo1)实现回车导航到指定地址

Winform使用Webview2创建demo1实现回车导航到指定地址

  • 往期目录
  • 参考文档
  • 实现
    • 1.安装visual studio
    • 2.创建单窗口应用
    • 3.修改项目中的窗体名称MainForm
    • 4.添加按钮
    • 5.添加窗口`Demo1`
    • 6.在Demo1中添加WebView2 SDK
    • 7.在`Demo1`窗体中选择添加textbox和webview2
    • 8.在`MainForm.cs`窗体中添加button的点击事件
    • 9.在`Demo1`中为`TextBox`创建回车跳转到对于导航
  • 效果
  • 往期目录

往期目录

往期相关文章目录
专栏目录

参考文档

WinForms 应用中的 WebView2 入门

实现

1.安装visual studio

按照官方文档一路操作,可以自行百度或者查看WinForms 应用中的 WebView2 入门。为了避坑,本人安装的时vs2022(visual studio 以下简称vs)

2.创建单窗口应用

打开vs(visual studio 以下简称vs) 点击创建新项目,选择C# Windows 窗体应用 (.NET Framework) 注意后面一定要带有(.NET Framework) 不然有些用不了。然后选择.NET Framework4.7.2
创建项目

3.修改项目中的窗体名称MainForm

因为后面要做好多Demo,所以做一个统一入口界面,防止许多点击按钮进行跳转各个Demo
整体修改需要做以下步骤

  • 在解决方案资源管理器 双击Form1.cs,选中Fom1窗体,再右侧找到属性窗口中的(name)修改为MainForm。属性窗口可以通过视图->属性窗口或者Ctrl+w,p打开 在这里插入图片描述
    在右侧解决方案资源管理器中选中Form1.csF2修改为MainForm在这里插入图片描述
  • Program.cs修改Form1MainForm
 /// <summary>
 /// 应用程序的主入口点。
 /// </summary>
 [STAThread]
 static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     //修改`Form1`为`MainForm`
     Application.Run(new MainForm());
 }

4.添加按钮

在解决方案资源管理器中双击MainForm.cs 。在视图点击工具箱或者Ctrl+w,x打开工具箱。
在工具箱中选择Button,拖拽到右侧MainForm窗体上。
选择按钮
在按钮上右键属性打开属性栏。修改按钮名称为btnDemo1,文字为 Webview2 初始基本HTML展示,回车导航
在这里插入图片描述
在这里插入图片描述

5.添加窗口Demo1

资源管理器选中解决项目,鼠标右键添加,添加窗体,输入Demo1添加。
在这里插入图片描述
在这里插入图片描述

6.在Demo1中添加WebView2 SDK

官方这一步骤挺详细的WinForms 应用中的 WebView2 入门 -> 步骤 4 - 安装 WebView2 SDK, 图标和官方有点不一样。
在这里插入图片描述
添加完之后在工具箱中可以看到webview2了
工具箱中的webview2
若如果没有出现可以查看官方的WinForms 应用中的 WebView2 入门 -> 步骤 5 - 创建单个 WebView2 控件 -> 5,6 点,

7.在Demo1窗体中选择添加textbox和webview2

现在你已经学会则怎么在窗体上创建按钮。同样的操作,在Demo1中从工具箱中拖拽 TextBoxWebView2.

  • 在属性栏中修改TextBox 如下属性
    (Name)->navigationUrl
    Anchor->Top,Left,Right

  • 在属性栏中修改WebView2如下属性
    (Name)->mainView2
    Anchor->Top,Bottom,Left,Right
    Source->https://www.baidu.com 页面导航地址

8.在MainForm.cs窗体中添加button的点击事件

回到MainForm窗体,找到前面创建的按钮,双击会跳转到对于的点击事件窗口。或者选中按钮通过右侧属性栏找到Click 双击跳到对应事件Click事件
添加如下代码

/// <summary>
/// 按钮点击打开Demo1窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDemo1_Click(object sender, EventArgs e)
{
    Demo1 demo1 = new Demo1();
    demo1.Show();
}

点击启动按钮或者F5启动应用。点击按钮会出现如下界面。
点击按钮Webview2 初始基本HTML展示,回车导航出现Demo1

9.在Demo1中为TextBox创建回车跳转到对于导航

选中TextBox在右侧属性栏中事件KeyDown,双击添加事件
在这里插入图片描述
添加如下代码

/// <summary>
/// 输入url地址,回车跳转到导航
/// </summary>
private void navigationUrl_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        try
        {
            this.mainView2.CoreWebView2.Navigate(
            this.navigationUrl.Text);
        }
        catch (Exception exception)
        {
            this.mainView2.ExecuteScriptAsync($"alert('{exception.Message.ToString()}')");
        }
    }
}

效果

启动在Demo1窗体中输入其他地址回车试试
输入地址https://www.taobao.com跳转到淘宝网
通过textbox跳转到淘宝网

往期目录

往期相关文章目录
专栏目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/342891.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea——git提交到本地记录如何退回/删除

目录 一、git提交到本地记录如何退回/删除 一、git提交到本地记录如何退回/删除 git提交到本地记录&#xff0c;如下图【更新】记录&#xff0c;表示本次提交到git本地需要退回/删除的操作&#xff1a; 选中项目&#xff0c;右键点击【git】——>【Show History】——>…

vscode运行python,终端能正常运行,输出(Code Runner)不能正常运行

右键->Run Code报错&#xff1a; [Done] exited with code9009 in 0.111 seconds 我的解决方案&#xff1a;仔细检查自己选的python.exe&#xff08;解释器&#xff09;在path环境变量中是否存在或路径是否正确&#xff01;&#xff01;&#xff01; 我就是太自信了&#xf…

REVIT二次开发 自动门窗墙体标注

步骤1 步骤2 步骤3 using System; using System.Collections.Generic; using System.Linq; using System

爬虫安居客新房

一、首先看网址 后面有全部代码 https://hf.fang.anjuke.com/loupan/baohequ/p3 这种形式很好分析&#xff0c;https://hf.fang.anjuke.com/loupan/行政区域页码 xinfang_area ["feixixian", "baohequ", "shushanqu", "luyangqu",…

梯度消失是什么意思

梯度 在数学和计算机科学中&#xff0c;梯度是一个向量&#xff0c;表示函数在某一点处的变化率和变化的方向。梯度是多变量函数的偏导数组成的向量。 在机器学习中&#xff0c;梯度也被称为损失函数对模型参数的偏导数。当我们训练一个模型时&#xff0c;通过梯度下降法或其变…

外包干了4个月,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

大模型日报-20240122

清华、小米、华为、 vivo、理想等多机构联合综述&#xff0c;首提个人LLM智能体、划分5级智能水平 https://mp.weixin.qq.com/s/JYB4BzsXhWF8pEUUkvn_GQ 想必这些唤醒词中至少有一个曾被你的嘴发出并成功呼唤出了一个能给你导航、讲笑话、添加日程、设置闹钟、拨打电话的智能个…

硅像素传感器文献调研(六)

写在前面&#xff1a; 感叹一下前人的智慧&#xff0c;保护环结构&#xff1f;保护环——场限制环&#xff1f;怎么发展着还改名字了哈哈哈哈哈 发现一个领域的文章是读得越多越好读了&#xff0c;知识都是那些。 发现大家的引言写的都很像&#xff0c;背后似乎是有一种套路…

Python基础第八篇(Python异常处理,模块与包)

文章目录 一、了解异常二、捕获异常&#xff08;1&#xff09;.异常案例代码&#xff08;2&#xff09;.读出结果 三、异常的传递&#xff08;1&#xff09;.异常传递案例代码&#xff08;2&#xff09;.读出结果 四、Python模块&#xff08;1&#xff09;.模块的导入&#xff…

【RainCloud】搭建网站!

一.领取一个免费域名和SSL证书&#xff0c;和CDN https://www.rainyun.com/z22_ 1.打开网站链接2.在网站主页上&#xff0c;您会看到一个"登陆/注册"的选项。 3.点击"登陆/注册"&#xff0c;然后选择"微信登录"选项。 4.使用您的手机扫描二维…

项目实战——Qt实现FFmpeg音视频转码器

文章目录 前言一、移植 FFmpeg 相关文件二、绘制 ui 界面三、实现简单的转码四、功能优化1、控件布局及美化2、缩放界面3、实现拖拽4、解析文件5、开启独立线程6、开启定时器7、最终运行效果 五、附录六、资源自取 前言 本文记录使用 Qt 实现 FFmepg 音视频转码器项目的开发过…

nginx代理本机多个端口应用

说明&#xff1a; 需求&#xff1a;我当前只有一个端口的授权&#xff0c;比如80&#xff0c;但是我的服务有多个且在不同的端口&#xff0c;比如8081&#xff0c;8082&#xff0c;我希望所有的请求通过都通过80端口进来&#xff0c;然后根据不同的文根怼到不同的端口&#xff…

专业ScrumMaster(高级)- PSM II 认证班,Scrum.org认证PSM II官方认证班

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架&#xff0c;旨在最短时间内交付最大价值。根据2022年全球敏捷状态报告&#xff0c;Scrum的应用占比已经达到87%。 Scrum.org 由 Scrum 的联合创始人 Ken Schwaber 创立…

让代码在键盘上跳“华尔兹”的10大原则

大家好&#xff0c;我是小❤&#xff0c;一个漂泊江湖多年的 985 非科班程序员&#xff0c;曾混迹于国企、互联网大厂和创业公司的后台开发攻城狮。 引言 编程界都知道&#xff0c;代码是一种艺术 —— 它是对技术职责和美学眼光的完美融合。 正如一名工匠在雕琢他的作品&am…

qt+sqllite小区管理系统

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 最近接了单子把小区管理系统改改分享出来吧&#xff0c;比较适合q…

python04-变量命名规则

python需要使用标识符来给变量命名。 标识符&#xff0c;我来解释下&#xff0c;就是给程序中变量、类、方法命名的符号&#xff0c;简单理解就是起一个名字&#xff0c;这个名字必须是合法的名字&#xff0c; 对于Python来说&#xff0c;标识符必须是以字母、下划线(_)开头&…

Oracle 19c rac集群管理 -------- 集群启停操作过程

Oracle rac集群启停操作过程 首先查看数据库的集群的db_unique_name SQL> show parameter nameNAME TYPE VALUE ------------------------------------ ----------- --------------------------- cdb_cluster_name …

vue2中CesiumV1.113.0加载离线地形数据

离线地形数据可以放在vue项目下的public/data/sjzTerrain文件下 由于地形离线数据数量太大&#xff0c;在vue项目编译时会报如下错误&#xff1a; ERROR in EMFILE: too many open files, open D:\test_project\vue_cesium_demo\public\data\sjzTerrain\.tmp\14\26787\11669.h…

《WebKit 技术内幕》学习之十二(1):安全机制

第12章 安全机制 安全机制对于浏览器和渲染引擎来说至关重要。一个不考虑安全机制的HTML5规范体系肯定不会受到广泛地使用&#xff0c;同时一个不安全的浏览器也不会得到广大用户的青睐。本章介绍的安全机制分成两个不同的部分&#xff0c;第一个部分是网页的安全&#xff0c;…