WinForm窗体间传值的十种方法详解
本文总结Windows Forms开发中常用的窗体间数据传递方案,涵盖从简单的公有属性、构造函数参数到灵活的委托与事件机制。针对单向/双向传递、解耦需求及代码维护性进行对比分析,并提供完整代码示例,帮助开发者根据实际场景选择最优实现方式。
本文总结Windows Forms开发中常用的窗体间数据传递方案,涵盖从简单的公有属性、构造函数参数到灵活的委托与事件机制。针对单向/双向传递、解耦需求及代码维护性进行对比分析,并提供完整代码示例,帮助开发者根据实际场景选择最优实现方式。
本文详述在C#中通过平台调用服务(P/Invoke)使用DllImport调用非受管DLL的方法。重点讲解如何正确处理输入输出字符串(StringBuilder与MarshalAs)、结构体传递(StructLayout与ref关键字)以及复杂的回调函数处理(委托与GCHandle指针管理),确保跨语言调用的正确性与内存安全。
本文介绍在C#项目中通过VSTO或Office互操作调用Word内置对话框的方法。核心步骤是使用WdWordDialog枚举获取Dialog对象,并调用Show方法弹出界面。针对需访问Name等后期绑定属性的场景,提供使用dynamic关键字及System.Reflection反射机制的完整代码示例。
本文介绍如何使用.NET框架自带的aspnet_regiis.exe工具对C#项目中的web.config或app.config文件进行加密,保护数据库连接字符串和敏感设置。通过指定provider(如RSA或DPAPI)可灵活选择加密策略,并提供完整的加密与解密命令行操作示例。

在 C# 中构建动态 SQL 查询时,若包含 LIKE 子句,必须对特殊字符进行转义以防止语法错误或注入风险。本文提供一个轻量级静态方法 ToLikeSql,通过替换单引号、方括号及通配符为转义序列,确保输入字符串能安全嵌入 SQL 语句。该方法简单高效,适用于 .NET Framework 及 .NET Core/5+ 环境。
本文详细解析C#预处理器指令的核心用法。重点介绍如何通过#define和#undef定义或取消符号,配合#if/#else/#endif实现选择性编译;利用#region/#endregion进行代码区块折叠管理。附带完整代码示例,展示如何在实际开发中控制编译逻辑并提升代码可读性。
本文介绍如何在ASP.NET中构建通用数据接口,并通过反射机制根据URL路径动态调用后端方法。同时展示在Winform客户端中如何使用HttpWebRequest以GET和POST方式请求该接口并解析JSON返回值,适用于异构平台间的数据互通场景。
本文介绍了在 C# 中利用正则表达式将 HTML 标签转换为 BBS/论坛通用的 UBB 代码,以及将 UBB 代码还原为 HTML 的方法。通过提取核心 Regex.Replace 逻辑,涵盖了文本格式化、链接、图片及特殊字符的处理,帮助开发者快速集成两种标记语言的相互解析功能。
本文总结了C#中遍历DataSet对象数据的三种常见方式。针对需要从特定行列取值、通用遍历所有表格字段,以及逐行处理列数据的场景,分别提供了准确的代码示例与逻辑说明,帮助开发者高效读取存储在DataSet中的数据内容。
本文详细介绍了C#中HttpWebRequest类的HTTP数据交互方法。通过GET方式在URL附加参数,通过POST方式在请求体提交数据。重点演示了如何设置请求头、使用HttpUtility处理UTF8或GB2312编码的中文参数,以及利用CookieContainer维持会话状态,提供完整的同步请求代码示例以解决常见的中文乱码问题。
本文介绍在C#中使用System.Net.Mail命名空间发送邮件的三种核心方式。通过实例代码详细解析如何通过Localhost本地服务、普通SMTP服务器以及开启SSL加密的Gmail SMTP发送邮件,涵盖发件人设置、抄送、主题编码及凭证认证等关键参数配置,帮助开发者快速实现邮件通知功能。
本文澄清了C#中Invoke和BeginInvoke并非开启新线程,而是将委托封送到UI线程执行。重点解析两者在工作线程与UI线程交互时的差异:Invoke同步阻塞工作线程,BeginInvoke异步非阻塞。通过代码示例说明如何安全地在后台线程更新界面控件,并指出DoEvents在高频循环中的潜在问题,提供正确的线程安全实践方案。