Office控件开发总结-开发Windows 窗体控件简单概述

Qt显示pdf系列2——QAxWidget打开Office文件及pdf 序 一QAxwidget操作office 二QAxwidget操作pdf 三总结 承接上章,该扯皮的扯完了,直接进入正题:序 顾名思义,这篇先介绍下QAxwidget来操作office和pdf  QAxwidget,即一个ActiveX控件的qt版本,方便我们在qt程序中调用显示,可以直接调用com组件。关于QAxwidget的介绍,官网上有更详细的,可以自行查看: QAxwidget官网介绍 阅读详情

1.1.     Windows窗体控件的种类及介绍

Windows 窗体支持三种用户定义的控件:复合、扩展和自定义。

复合控件是通过从 UserControl 类继承创建的控件。复合控件包含与每个包含的 Windows 窗体控件相关联的所有固有功能,允许您有选择地公开和绑定它们的属性。复合控件还提供了大量的默认键盘处理功能,您不需要任何额外的开发。

扩展控件是通过从现有的 Windows 窗体控件类继承创建的控件。此方法使您得以保留 Windows 窗体控件的所有固有功能,然后通过添加自定义属性、方法或其他功能扩展此固有功能。可以使用此选项重写基控件的绘制逻辑,然后更改该控件的外观以扩展其用户界面。

自定义控件是通过从 Control 类继承创建的控件。Control 类提供控件所需的所有基本功能(包括鼠标和键盘处理事件),但不提供控件特定的功能或图形界面。

1.2.     如何对Windows 窗体控件进行属性、方法和事件的定义及执行

以下代码片段为自定义控件OfficeEmbedCtl定义了一个名为RefillVisible的自定义属性。

public partialclass OfficeEmbedCtl :UserControl {

   ...

    private bool _refillVisible;

    ///<summary>

    /// 重新填充按钮是否显示

    ///</summary>

    [Category("行为"),Description("重新填充按钮是否显示")]

    public bool RefillVisible

    {

        get

        {

            return _refillVisible;

        }

        set

        {

            _refillVisible = value;

        }

    }

...

}

以下代码片段说明了OfficeEmbedCtl自定义控件如何定义自定义事件 ValueChanged。

public partialclass OfficeEmbedCtl :UserControl {

   ...

private EventHandler onValueChanged;

    ///<summary>

    /// 值改变时发生

///</summary>

    public eventEventHandler ValueChanged

    {

        add

        {

            onValueChanged += value;

        }

        remove

        {

            onValueChanged -= value;

        }

    }

    protected virtualvoid OnValueChanged(EventArgs e)

    {

        if (ValueChanged != null)

        {

            ValueChanged(this, e);

        }

}

   ...

}

1.3.     如何对 Windows 窗体控件进行线程安全调用

以下代码片段说明了OfficeEmbedCtl自定义控件如何对窗体控件进行线程安全调用。

public partialclass TemplateForm :BaseForm {

   ...

    private void officeEmbedCtl1_ImportExcelClick(object sender,EventArgs e)

    {

        Thread thread = new Thread(newThreadStart(delegate()

        {

            Invoke(new MethodInvoker(delegate

            {

                OpenFileDialog file = new OpenFileDialog();

                file.Filter = "Excel 工作簿(*.xlsx)|*.xlsx";

                if (file.ShowDialog(this) ==DialogResult.OK)

                {

                    officeEmbedCtl1.ImportExcel(file.FileName);

                }

            }));

        }));

        thread.SetApartmentState(ApartmentState.STA);

        thread.Start();

}

   ...

}

C#开发:Office 2003风格菜单组件源码剖析 本文还有配套的精品资源,点击获取 简介:本资源提供了使用C#语言实现的Office 2003风格菜单组件的源码,旨在帮助开发者在Windows平台应用程序中重现早期Office的用户交互体验。组件包含多种关键实现,如控件设计、样式与模板应用、事件处理机制、动态加载与数据绑定、扩展性与可维护性设计、性能优化策略、测试与调试以及代码组织规范。通过深入研究这些实现,开发者可以提升... 阅读详情

相关推荐

东方通TongWeb虚拟主机配置全流程:从创建到应用部署的保姆级教程

本文提供东方通TongWeb虚拟主机从创建、HTTP通道配置到应用部署的完整实战指南。重点解析虚拟主机的逻辑隔离价值、通道参数调优原理及企业级多应用部署架构,并涵盖常见报错排查与性能优化建议,旨在帮助运维和开发人员高效、稳定地完成应用系统部署。

oil88的博客 530

.NET WinForms窗体应用程序学习总结_田超凡

C#开发数据库应用程序 学习总结 ...

田宝宝的博客 2574

西电 程序设计基础课程设计 作业

当时做的程序设计课程的作业. 一共五题, 以报告的形式提交. 质量应该比较高(高傲). 完整内容在这里 高精度计算 问题描述 涉及知识点: 数组, 流程控制, 函数等 要求: 用整型数组表示10进制大整数(超过 2322^{32}232 的整数), 数组的每个元素存储大整数的一位数字, 实现大整数的加减法. 问题分析 结构设计 可将高精度整数写成一个类. 成员变量有: int a[MAXN], len; bool negative; 其中, 数组a用来存储大整数的一个数位, a[1]为个位上的数字, a

Wings 2513

Windows学习心得【对话框】

#include #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;//回调函数的声明 BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInst

活在阳光下 968

直流无刷减速电机选型指南:从KV值到霍尔传感器,新手必看的5个关键参数

本文详细解析直流无刷减速电机选型的5个关键参数,包括KV值、转矩、电流与功率、减速比选择以及霍尔传感器配置。通过实战案例和避坑策略,帮助工程师精准匹配电机性能与负载需求,提升工业自动化设备的可靠性和效率。特别强调霍尔传感器在精准控制中的关键作用。

alice7model的博客 620

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2780

Windows游戏开发感想&&一个完整的Windows窗口程序

现在的互联网行业从事Windows游戏开发的人实在是太少了。一是因为门槛较高,游戏行业本来就是互联网行业最尖端的领域,要想从事游戏开发,不仅要掌握一门过硬的语言,尤其是对C++的精通,还要对算法非常精通,深刻掌握计算机图形学等知识。熟悉以后还得掌握一些重要的图形库(OpenGL和DirectX)以及一些强大游戏引擎(Unity3D,Cocos2d-X等)。这些书籍光是看完就要花很久的时间,更别说在项

吾尝终日而思矣,不如须臾之所学也 7947

UVM自学笔记3——项目之三——从零开始搭建ahb_sramc验证平台

创建如下所示的目录结构: 2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和39行将接口以virtual interface的形式配置给ahb_agent和sramc_agent下

ZhangShuHuai11的博客 9474

Windows学习心得【按钮控件】

#include #define ID_SMALLER 1 #define ID_LARGER 2 #define BTN_WIDTH (8* cxChar) #define BTN_HEIGHT (4* cyChar) LRESULT CALLBACK WndProc(HWND ,UINT,WPARAM,LPARAM);//首先是一个回调函数的声明 HINSTANCE hInst; int

活在阳光下 1225

9、硬件工程师笔试面试知识器件篇——三极管(2025版本)

本文全面介绍了三极管的基础知识与应用,包括其结构、类型、工作原理、工作状态、功能、应用场景及特性参数。详细探讨了三极管在信号放大、无线通信、音频设备及医疗设备中的具体应用,并深入分析了设计放大电路时如何平衡增益与噪声、优化偏置电路以提高稳定性、使用负反馈改善性能等关键问题。此外,文章还涵盖了高频电路设计、温度补偿策略、电磁干扰防护等实用内容,为硬件工程师提供了全面的技术参考和设计指导。

XU157303764的博客 7311

YOLOv5_DeepSORT_Pytorch训练自己的多目标跟踪模型

1 准备 环境配置:https://blog.youkuaiyun.com/weixin_50008473/article/details/115250986?spm=1001.2014.3001.5501 YOLOv5_DeepSORT_Pytorch代码地址: https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch DeepSORT论文:https://arxiv.org/pdf/1703.07402.pdf 2 训练目标检测模型 训练自己的目标检测模

weixin_50008473的博客 1万+

Office控件开发总结-目录

Office控件开发总结-开发Windows 窗体控件简单概述Office控件开发总结-Office 开发基本知识Office控件开发总结-Office 编程中的常见任务Office控件开发总结-构建Office控件

706

PyTorch生成式人工智能(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解

生成对抗网络 (Generative Adversarial Network, GAN) 最早由 Ian Goodfellow 于 2014 年提出,其中生成器试图创建与真实样本无法区分的数据样本,而判别器则试图区分生成器生成的样本与真实样本。在本节中,我们将介绍 GAN 的理论基础。然后,介绍如何使用 PyTorch 从零开始构建 GAN,以便了解所有细节,深入理解 GAN 的内部工作原理,为后续讨论 GAN 的其他更高级内容奠定基础,比如生成高分辨率图像或逼真的音乐。

盼小辉丶的博客 1万+

WPF样式统一之DevExpress设置窗体,控件为Office风格

DevExpress相信不少人用过,虽然人家不是免费的,但是用过的应该都知道,确实是花了心血的C#插件,下面来介绍下在DevExpress下如何统一设置自己的WPF程序为经典Windows风格。 窗体设置windows风格: 导入上图两个DLL 将自己的窗体改为DevExpress的主题窗体类:ThemeWindow. 设置主题主要是靠Appl...

awxm75983的博客 1240

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件(经经经经经典)

以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件发布日期 : 12/2/2004 | 更新日期 : 12/2/2004Mark BukovecEmpire Down Development适用于:Microsoft® Office Visio® 2003 摘要:学习将 Microsoft® Office Visio® 2003 Act

glumtree的专栏 3229

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

为Office文档添加Windows窗体控件:在设计时添加控件

可通过以下几种方法在设计时向文档级项目的文档中添加 Windows 窗体控件。  说明:对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。将 Windows 窗

光脚丫思考的专栏 1478

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

为Office文档添加Windows窗体控件:在运行时向文档级项目中添加控件

可以在运行时以编程方式向文档中添加 Windows 窗体控件。在 Word 中,可以使用 ThisDocument 类的 Controls 属性的方法。在 Excel 中,可以使用 Sheetn 类 Controls 属性的方法。每个方法都有多个重载,使用这些重载,可以按不同的方式指定控件的位置。有关更多信息,请参见 Windows 窗体控件的帮助器方法。 如果在运行时向某个文档中添加 Win

光脚丫思考的专栏 1519

为Office文档添加Windows窗体控件:在运行时向应用程序级外接程序中添加控件

可以在运行时以编程方式向任何打开的文档中添加 Windows 窗体控件。首先,生成一个基于所打开的文档或工作表的宿主项。然后,使用新宿主项的 Document..::.Controls 属性的方法(在 Word 中),或者使用新宿主项的 Worksheet..::.Controls 属性的方法(在 Excel 中)。每个方法都有多个重载,使用这些重载,可以按不同的方式指定控件的位置。有关更多信息,

光脚丫思考的专栏 1649

DevExpress_RibbonControl控件的简单应用

DevExpress中的RibbonControl的简单应用, 搭建一个拥有Office2010风格的窗体程序。 最终效果如下:   第一步:打开VS2018,新建一个windows窗体应用程序; 第二步:把需要的Dev控件放到窗体中: 1、在工具箱中找到RibbionControl和ribbonStatusBar,把它们放到窗体中, 两个会分别停靠在窗体的上方和下方; 窗体的上方...

pre_eminent的JAVA学习园地 5662

Office控件开发总结-构建Office控件

在写技术研究报告时,看到的一篇不错的文档,摘抄过来方便以后查阅 前面主要介绍了Windows控件开发及Office开发相关的知识点,在这篇文章中我们正式来介绍一下如何结合前面的知识点来构建Office控件。 1.1.     技术选型 开发内嵌在Windows应用程序的Office控件一般有以下三种解决方案: 1、通过API把Office的窗口句柄给Windows应用程序; 2、通过We

861

C#如何添加类似Office的Ribbon控件

3.此时在工具箱上新增了一项"System.Windows.Forms.Ribbon"选项卡,2.在解决方案资源管理器上,引用那里点击鼠标右键,选择管理NuGet程序包。1.打开VS,创建Windows应用程序.4.添加Ribbon控件到窗体上.

liang_tb的博客 760
上一篇: Office控件开发总结-目录
下一篇: Office控件开发总结-Office 编程中的常见任务
韩慧兵
博客等级 码龄15年 170粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值