我们知道,在做Web开发的时候,很多控件可以用来做HTML内容编辑的,Winform开发就相对少很多,不过很多时候,我们在做Winform开发的时候,也是需要处理这样的场景的。例如发送HTML邮件内容的时候,在给客户编写内容丰富的反馈意见或者邮件的时候等等,因此有必要做一个支持好HTML格式,支持图片插入等丰富内容的控件。

本文就是介绍这么一个控件,这个控件增加了一些常见HTML格式的工具栏操作,并且改良支持Win7系统下的内容编辑(一般WebBrowser包装类,在Win7下内容会变得不可编辑),本控件不会有这个问题。另外,一般WebBrowser需要客户端有Microsoft.MSHTML.dll,这个文件7M多,一般开发的机器上会有,但普通用户的电脑就不一定有这个文件,而且这个文件很大,非常不适合软件的部署。本控件使用WindowsLive.Writer.Interop.Mshtml和WindowsLive.Writer.Mshtml两个小文件来替代Microsoft.MSHTML.dll这个庞然大物的dll。

下面是一个在Winform开发框架中用于意见反馈的场景,里面可以使用丰富的HTML格式,可以插入图片等操作,如下所示。

打开问题反馈出现下面的HTML内容编辑界面

由于我是把反馈信息作为邮件发送的,因此,插入的本地图片,也会作为嵌入内容写入到邮件当中,在邮件内容中插入嵌入图片是一个有点技术含量的工作,不同于一般的邮件附件,他是把图片字节写在邮件的同时,也同时修改邮件内容的图片应用为cid:***这样的路径格式。收到的邮件如下所示。

1、发送邮件的辅助类 EmailHelper。

实现效果

1) 本辅助类主要是用来方便实现发送邮件操作,可以发送附件、嵌入图片、HTML等内容邮件。使用底层SMTP协议指令进行发送,成功率较高。

2)邮件发送可以用在客户反馈,信息推广,客户沟通,员工交流等方面业务需要。

实现代码

1)辅助类提供的方法源码如下所示: ..............省略..............

2)辅助类EmailHelper的使用例子代码如下所示

EmailHelper email = new EmailHelper("smtp.163.com", "wuhuacong2013@163.com", "password");

email.Subject = "伍华聪的普通测试邮件";

email.Body = string.Format("测试邮件正文内容");

email.IsHtml = true;

email.From = "wuhuacong2013@163.com";

email.FromName = "wuhuacong2013";

email.AddRecipient("6966254@qq.com");

try {

bool success = email.SendEmail();

MessageUtil.ShowTips(success ? "发送成功" : "发送失败");

}

catch (Exception ex)

{

MessageUtil.ShowError(ex.Message);

}

3)如果使用发送附件、发送嵌入图片(正文中有图片显示内容的)方式,则例子代码如下所示。

EmailHelper email = new EmailHelper("smtp.163.com", "wuhuacong2013@163.com", "password");

email.Subject = "伍华聪的图片附件测试邮件";

string embedFile = Path.Combine(Application.StartupPath, "cityroad.jpg");

email.Body = string.Format("测试邮件正文内容%5C%22%7B0%7D%5C%22 ", embedFile);

email.IsHtml = true;

email.From = "wuhuacong2013@163.com";

email.FromName = "wuhuacong2013";

email.AddRecipient("6966254@qq.com");

email.AddAttachment(Path.Combine(Application.StartupPath, "ringin.wav"));//.AddAttachment("C:\\test.txt");

try {

bool success = email.SendEmail();

MessageUtil.ShowTips(success ? "发送成功" : "发送失败");

}

catch (Exception ex)

{

MessageUtil.ShowError(ex.Message);

}

其实该控件还可以改造成HTML内容显示控件,不过由于涉及要将服务器的图片文件下载并保存到一个目录,并修改HTML内容中图片的路径以便进行显示,修改内容的时候,还得记住那些图片是原有的,新增的图片才提交到服务器即可,不过这样就会搞得比较复杂一点。大家如果有好的建议可以讨论下。

winform利用html开发,Winform开发框架之HTML编辑控件介绍相关推荐

  1. Web开发中的弹出对话框控件介绍

    Web开发中,目前由于Jquery的大行其道,因此很多弹出对话框,都用到了Jquery技术,反而原始的弹出对话框的方式较为少用了.不过基于JQuery的方式实现对话框窗口弹出,也有很多控件可以利用,由 ...

  2. C# Winform 通过FlowLayoutPanel及自定义的编辑控件,实现快速构建C/S版的编辑表单页面...

    个人理解,开发应用程序的目的,不论是B/S或是C/S结构类型,无非就是实现可供用户进行查.增.改.删,其中查询用到最多,开发设计的场景也最为复杂,包括但不限于:表格记录查询.报表查询.导出文件查询等等 ...

  3. WinForm界面开发之“HTML内容编辑控件”

    做过了很多Winform的共享软件,对界面的设计有了一定的经验和积累,准备开一个"WinForm界面开发"系列文章,介绍下相关的Winform界面设计和相关控件的使用,促进相互交流 ...

  4. Winform平台的HTML编辑控件——Zeta HTML

    DevExpress v20.2完整版下载 DevExpress技术交流群3:700924826      欢迎一起进群讨论 DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI ...

  5. winform常用控件介绍

    winform常用控件介绍 1.窗体 1 2.Label 控件 3 3.TextBox 控件 4 4.RichTextBox控件 5 5.NumericUpDown 控件 7 6.Button 控件 ...

  6. Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题

    场景 在Winform中进行页面设计时,常使用控件的Dock属性来进行布局调整.但是由于设置属性的顺序问题,导致达不到想要的效果. 比如以下两个控件 下面的控件设置的Dock属性是Bottom,即在页 ...

  7. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用

    Dixon 原文  用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...

  8. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性

    深入讲解控件的属性持久化(一) 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第 ...

  9. Windows Phone开发(11):常用控件(下)

    原文:Windows Phone开发(11):常用控件(下) WP控件大部分都可以从Silverlight中继承过来,这里我也只能拿一部分作演示,对于其它控件如何使用,可以参考SDK相关说明以及Sil ...

  10. [转]利用ASP.NET 2.0创建自定义Web控件(1)

    原址:http://hi.baidu.com/sjbh/blog/item/cc58fd1bd35d3ad2ad6e7593.html   简介 从使用基本的文本编辑器到创作标记页面,Web 开发已经 ...

最新文章

  1. 设计模式系列·抽象工厂模式
  2. Nginx 之父被拘留,时隔15年后,前老板提起了版权侵权诉讼!
  3. 深入揭示Web 2.0核心技术——混搭
  4. 处理JS中数据失真问题-随笔
  5. 思科cisco路由器动态路由协议配置方法
  6. python开发效率怎样提高_python 提高开发效率的5个小技巧
  7. 怎么打公式_我们总结了一条抖音爆款公式
  8. 阿里达摩院金榕:从技术到科学,中国AI向何处去?
  9. mysql bing logo_mysqlbing log
  10. man后面的数字(转)
  11. Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix
  12. TripAdvisor猫途鹰翻译志愿者线上任务评测
  13. matlab描点连线画图
  14. Qt对象间的父子关系
  15. uygurqa输入法android,uygurqa维语输入法
  16. phpnow mysql升级,phpnow升级apache版本
  17. Android Studio模拟器AndroidWifi连接成功但无法访问网络问题
  18. SpringBoot - OAuth2第三方登录之QQ登录
  19. 小白服务器编程指北(2)——用Docker编配你的服务器环境
  20. mysql 一个月以前_mysql查询昨天 一周前 一月前 一年前的数据

热门文章

  1. 通达OA CRM扫描枪条码录入
  2. 最新教师计算机测试题,信息技术教师基本功测试题
  3. SQLiteDeveloper破解方法
  4. Unity中音效插件
  5. VC++黑客编程收集的源码集合,只有你想不到的
  6. 计算机应用基础题excel,计算机应用基础专练习题excel.doc
  7. 计算机网络配置vlan实验报告,北京理工大学-计算机网络实践-VLAN配置及VLAN间通信实验报告...
  8. Tough Days
  9. Linux命令大全详解
  10. php dbc2000操作类,超详细菜鸟入门第一课DBC2000详细架设