窗体

C#创建不规则窗体的3种方式详解

对着背影说爱祢 提交于 2020-01-10 23:47:34
现在,C#创建不规则窗体不是一件难事,下面总结一下: 一、自定义窗体 一般为规则的图形,如圆、椭圆等。 做法: 重写Form1_Paint事件(Form1是窗体的名字),最简单的一种情况如下: System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath(); shape.AddEllipse(0,0, this .Height, this .Width); this .Region = new Region(shape); 即重绘窗体的规则。 二、利用背景图片实现 1. 设置窗体的背景图片,其中背景图片是24位(不包括24)以下的位图(BMP图片),并且要设置TansparencyKey的值,一般为你背景图片的背景色,即创建不规则图片时的底色,一般设为你图片中没有的颜色。 这种做法的不好的地方就是背景图片一定要16位或者更低的,而且还要确保客户端的显示。如果监视器的颜色深度设置大于 24 位,则不管 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。若要避免出现这种问题,请确保“显示”控制面板中的监视器颜色深度的设置小于 24 位。当开发具有这种透明功能的应用程序时,请牢记应使您的用户意识到此问题。 实现步骤 如下: 1.

以编程方式使用 Microsoft Office Visio 2003 ActiveX 控件

白昼怎懂夜的黑 提交于 2020-01-10 15:01:30
发布日期: 12/2/2004 | 更新日期: 12/2/2004 Mark Bukovec Empire Down Development 适用于: Microsoft® Office Visio® 2003 摘要: 学习将 Microsoft® Office Visio® 2003 ActiveX® 控件(即 Visio 绘图控件)集成到应用程序中。查看最佳作法以及如何以编程方式使用 Visio 绘图控件。 本页内容 简介 了解 Visio 绘制控件 使用 Visio 绘图控件的场景 设计最佳作法 开始使用 将控件与主机容器相结合 部署 小结 简介 Microsoft® Office Visio® 2003 ActiveX® Control(Visio 绘图控件)通过丰富的 Visio 对象模型,作为可嵌入组件来提供 Visio 应用程序的完整功能。您可以通过宿主应用程序中的事件或代码,以编程方式驱动 Visio 绘图控件。此外,Visio 绘图控件可以在您自己的应用程序用户界面 (UI) 的上下文中为应用程序用户提供图表制作环境。 在本文中,您将学到: • Visio 绘图控件的功能和示例使用场景。 • 在 Visio 解决方案中使用 Visio 绘图控件的最佳作法。 • 如何将 Visio 绘图控件嵌入到各种宿主应用程序中,包括 Microsoft Windows®窗体

C++之继承与派生(3)

橙三吉。 提交于 2020-01-10 13:57:27
  大家都知道C#和C++重要的区别之一就是,C#支持单一继承和多接口继承,而C++则允许多继承。至于哪一个比较好,在这里就不去评价了。今天所要说的重点内容就是C++的多重继承以及虚基类。   1.前一节我介绍了有关单继承的内容,实际上,一个派生类可能会继承于两个或多了基类,那么这样的派生方法称为多基派生或多重继承。它声明的一般格式:   class 派生类名:继承方式1 基类名1, 继承方式2 基类名2, 继承方式3 基类名3, ...,继承方式n 基类名n   {     派生类新增的数据成员和成员函数;   } 在多重继承中,公有继承、保护继承以及私有继承对于基类成员在派生类中的访问属性与单继承的规则是相同的。同样的多重继承派生类的构造函数和析构函数又是如何定义呢?一般形式:   派生类名(参数总表):基类名1(参数子表1), 基类名2(参数子表2),...,基类名n(参数子表n)   {     派生类新增成员的初始化语句;   } 与单继承派生类构造函数一样,多继承下的派生类构造函数必须同时负责该派生类的所有基类构造函数的参数传递。且构造函数和析构函数的调用顺序和单继承是一样的(可参考 C++之继承与派生(2) ),先调用基类构造函数,再调用对象成员的构造函数,最后调用派生类的构造函数。那么处于同一层次的各个基类构造函数的调用顺序是取决于声明派生类时所指定的各个基类的顺序

.net core 开发 Windows Forms 程序

僤鯓⒐⒋嵵緔 提交于 2020-01-10 11:04:11
引言 .net core 3.1 是微软LTS长期3年支持版本,正式发布于2019-12-03,并且在windows平台上支持了Winfrom跟WPF桌面应用。本文将介绍使用 vs 2019 开发 Windows Forms 桌面应用程序。 开发 Windows Forms 程序 首先,打开 vs 2019 ide 工具,新建一个 Windows Forms App(.Net Core) 项目,如下图: 默认是 .net core 3.1 的框架。 双击 Form1 发现并没有弹出窗体设计器,what? 没有5年10年的开发经验,让我直接手写 WinForm 代码,这不是给我开玩笑嘛。 最后,发现需要安装“winforms-designer”插件,才能使用窗体设计器,使用拖拽控件的方式。 https://aka.ms/winforms-designer 在Visual Studio 16.5 Preview 1中更新到.NET Core Windows Forms设计器 我们很高兴宣布.NET Core Windows窗体设计器的新预览版,可在Visual Studio 16.5 Preview 1中使用。 令人欣慰的是,设计师现在已成为Visual Studio的一部分!这意味着不再需要从单独的VSIX安装.NET Core Windows Forms设计器! 要使用设计器:

WinForm背景图片及图片位置

拈花ヽ惹草 提交于 2020-01-09 02:31:39
设置背景图片 :BackgroundImage属性选择对应的图片就可以了。 背景图片随窗体的变化而变化 :BackgroundImageLayout属性值设置为Stretch。 窗体放置图片 :PictureBox控件; PictureBox控件的背景为透明: BackColor的值为Transparent。 让图片的大小适合你的PictureBox控件的大小 :PictureBox的SizeMode属性值设置为Zoom。 控件的位置和大小随窗体大小的变化而变化 : 设计视图时将控件放置再你需要的位置,Dock属性为None, Anchor属性为None, 则该控件的位置一直处于窗体的相对位置上。 来源: https://www.cnblogs.com/bkyqtr/p/11357881.html

JFrame的面板结构和JPanel的使用

僤鯓⒐⒋嵵緔 提交于 2020-01-09 01:42:39
JFrame图解结构 有一窗口框架实例:JFrame win = new JFrame("窗口"); 在new JFrame()时,构建了JFrame实例对象,在实例中的Layered Pane层面版中,也默认构建了一个JPanel控件面板。 使用 win.getContentPane( ); 是获取JFrame实例win中默认构建的 JPanel控件面板,获取到后可以往里布置 功能控件(如JButton)。 写一个JPanel控件面板实例:JPanel panel = new JPanel( ); 使用 win.setContentPane(panel); 是把 win 中的默认 JPanel控件面板 替换为自定义的 JPanel控制面板 panel。 使用 win.add(panel); 则是在 win 中的默认 JPanel控件面板上叠加布置了--自定义的JPanel控件面板panel,(JPanel是可以嵌套的)。 【总结】 使用JFrame窗体时: 1.可以通过JFrame.getContentPane( )获取 JFrame窗体实例 默认构建的JPanel控件面板,然后往上布置功能控件。 2.可以通过JFrame.setContentPane(JPanel实例) 将 JFrame窗体实例 默认的 JPanel控件面板 替换成 自定义的JPanel控件面板。 3

Delphi XE5 for Android (二)

别等时光非礼了梦想. 提交于 2020-01-05 23:44:12
按照Embarcadero的说法:Windows平台只能使用VCL,Windows、iOS和Android都可以使用FMX,并且VCL和FMX不能同时在一个程序中。FMX的用法与VCL有一定的差异,先从最简单的说起: 应用程序的关闭退出 在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束。所以在主窗体中使用窗体的关闭函数(Close)即可,如下: procedure TfrmMain.btncloseClick(Sender: TObject); begin Close; end; 在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为: uses FMX.Platform.Android; procedure TForm2.SpeedButton1Click(Sender: TObject); begin MainActivity.finish; end; 此时程序直接关闭了,如果需要在退出前询问一下,可以参考VCL中的做法,在按钮事件中仍然使用关闭函数,在OnCloseQuery事件中询问是否退出,在OnClose事件中实现程序的关闭,如下: uses FMX.Platform.Android; procedure

鼠标滚轮实现窗体图形缩放MouseWheel

风格不统一 提交于 2020-01-04 16:23:29
功能描述:在鼠标进入一个用于绘制图形的窗体(如:Show_3D)时,滚动鼠标滚轮,使窗体中的内容能够进行放大缩小.此处以绘制XNA图形为例. 滚动鼠标的滚轮,触发的是窗体或控件上的 MouseWheel 事件。但是在VS2008以及其他版本中,窗体和控件的事件列表中并不包含 MouseWheel 事件,因此对于这个事件的事件处理函数须手动创建和实现。 首先在窗体的构造函数中,添加如下代码: 1 this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Panel_MouseWheel); View Code 这样只是使Panel能接收鼠标的滚动事件,但还不能实现窗体中内容的放大缩小,因此还需要添加以下代码: private void Show_3D_MouseWheel(object sender, MouseEventArgs e) { float Mo = 0; if (e.Delta > 0) { Mo = 8; } else { Mo = -8; } if (Global.myCamera.cameraPosition.Y < 90.0f) { Global.myCamera.cameraPosition += 0.01f * Mo * (Global.myCamera.cameraTarget -

ACCESS中的窗体、报表、宏模块等(ACCESS 2000)

非 Y 不嫁゛ 提交于 2020-01-03 04:31:26
窗体: 分为数据操作窗体,它包括单页、多页、连续、子窗口 控制窗体 信息交互窗体 窗体三种视图:“设计”视图、“窗体”视图、“数据表”视图 窗体建立的五种方式: 一:自动创建窗体 二:窗体向导(一对多关系可以选择带子窗体的窗体) 三:设计视图 四:图表向导(如果同时存在轴和系列好么数据只能有一个) 五:数据透视表向导创建类似于交叉表式的窗体、需要 EXCEL 的支持 自动创建窗体的三种样式:纵栏式、表格式、数据表窗体 设计视图窗口的构成: 五个区域,每个区域称为“节”,分别称为“窗体页眉”、“页面页眉”、“主体”、“页面页脚”、“窗体页脚”(我能看到窗体页眉和窗体页脚) 默认只显示“主体”、其它通过“视图” 双击左上角黑色小方块,设置属性(数据源) 控件的使用 控件的类型: 绑定型控件、未绑定型控件、计算型控件 选项组等控键保存的为数字,但可用查阅字段另存为文本转换。 布局命令按钮时确保向导按下 选项卡、选项组控件都属于容器类控件。 子窗体的创建:一是同时创建窗体和子窗体(向导创建) 二是将已有窗体加到主窗体中 三是弹出式子窗体、在向导中选择“链接窗体”。 外观等调整工具栏上格式视图菜单,属性中的“格式” 窗体还包括:排序、查找、筛选等 报表: 报表由五部分组成:报表页眉、页面页眉、主体、页面页脚、报表页脚 一个部分称为报表的一个节 另外还有视图——排序与分组命令中的组页眉和组页脚

c#制作计算器全过程

狂风中的少年 提交于 2020-01-02 20:18:06
前言: 网上看的计算器制作只有代码,没有为全过程下面贴图,所以我在下面主要是贴图,让大家零基础制作计算器。 我的环境是visual studio 2010,其他版本例如2008,2012 都可以 1.启动vs2010,新建->项目,得到下图: 2. 选择visual c# ->windows->Windows 窗体应用程序 3.选择项目路径(不一定跟我的一样),名称尽量能让自己和别人明白。 4.窗体Form1 就是我们即将要编辑的位置 5.目前只用到button,textbox 控件,所以 选择工具箱里的Button并拖到Form1编辑框里 ,TextBox也一样。 6.按钮布局如下图,顶上是TextBox控件,下面是20个button控件,还有一个链接控件,计划实现 加减乘除,平方,开方,log, ln 的功能 7.如下图,单击其中一个button按钮,在右下方的 属性 里找到text并改名,其他的属性暂时不要动,以后可以慢慢改。 8.修改后的 Form1 编辑框如下图左边所示。 下面就是代码的编写了: 9.双击Form1 窗体后,进入 Form1.cs* 界面(说白了是刚才窗体的代码编辑框,也是Form1窗体功能实现的界面) 10.下图是初始程序,我们要做的是往里面加代码。 完整代码: using System; using System.Collections.Generic