自定义控件--图片按钮

VBA—EXCEL操作集合—03 通过简单的抽奖游戏,认识一些VBA的事件。 阅读详情

图片按钮:

思路:很简单,就是在一个picturebox控件上放置一个button控件,然后将这个button添加进picturebox上(确保先拖拽picturebox,后拖拽button),设置这个button的背景色(这个时候是相对于picturebox)为透明。

 

Imports System.ComponentModel

Public Class picturebutton

    Inherits System.Windows.Forms.UserControl

 

#Region " Windows 窗体设计器生成的代码 "

 

    'UserControl 重写 dispose 以清理组件列表。

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

        If disposing Then

            If Not (components Is Nothing) Then

                components.Dispose()

            End If

        End If

        MyBase.Dispose(disposing)

    End Sub

 

    'Windows 窗体设计器所必需的

    Private components As System.ComponentModel.IContainer

 

    '注意:以下过程是 Windows 窗体设计器所必需的

    '可以使用 Windows 窗体设计器修改此过程。

    '不要使用代码编辑器修改它。

    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox

    Friend WithEvents Button1 As System.Windows.Forms.Button

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        Me.PictureBox1 = New System.Windows.Forms.PictureBox()

        Me.Button1 = New System.Windows.Forms.Button()

        Me.SuspendLayout()

        '

        'PictureBox1

        '

        Me.PictureBox1.Name = "PictureBox1"

        Me.PictureBox1.Size = New System.Drawing.Size(136, 40)

        Me.PictureBox1.TabIndex = 0

        Me.PictureBox1.TabStop = False

        '

        'Button1

        '

        Me.Button1.Name = "Button1"

        Me.Button1.TabIndex = 1

        Me.Button1.Text = "Button1"

        '

        'picturebutton

        '

        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.PictureBox1})

        Me.Name = "picturebutton"

        Me.ResumeLayout(False)

 

    End Sub

 

#End Region

    Public Sub New()

        MyBase.New()

 

        '该调用是 Windows 窗体设计器所必需的。

        InitializeComponent()

 

        '在 InitializeComponent() 调用之后添加任何初始化

        Me.Button1.Width = 100 ‘设置按钮的初始大小

        Me.Button1.Height = 23

      

 

        Me.Button1.BackColor = Color.Transparent ‘背景色透明

        Me.Button1.ForeColor = Color.Black

        Me.PictureBox1.Controls.Add(Me.Button1)

    End Sub

    Private m_text As String ‘设置按钮标题

    Private a As Integer

 

    'Private m_image As Image

    <Description("picturebox图片。")> _

    Public Property image() As image

        Get

            Return Me.PictureBox1.Image

        End Get

        Set(ByVal Value As image)

            Me.PictureBox1.Image = Value

            Invalidate()

        End Set

    End Property

 

    Shadows Property forecolor() As Color

        Get

            Return Me.Button1.ForeColor

        End Get

        Set(ByVal Value As Color)

            Me.Button1.ForeColor = Value

            Invalidate()

        End Set

    End Property

    Shadows Sub ResetForeColor()

        Me.Button1.ForeColor = SystemColors.ControlText

    End Sub

    '////

    '按钮的单击事件

    Event BtnClick(ByVal sender As Object, ByVal e As System.EventArgs)

 

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

        RaiseEvent BtnClick(Me, e)

    End Sub

    '////

 

    '控件改变大小时,需重绘控件,以使子控件排位美观

    Private Sub FileTextBox_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize

        RedrawControls()

    End Sub

 

    '子控件会自动继续容器的Font属性,所以改变容器的Font属性时也要重绘控件

    Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)

        '让基控件更新文本框

        MyBase.OnFontChanged(e)

        '重绘控件

        RedrawControls()

    End Sub

 

    '重绘控件

    Private Sub RedrawControls()

        '控件宽度

        Dim width As Integer = Me.ClientRectangle.Width '获得工作区宽

        '以按钮的高度来确定控件高度

        Dim btnSide As Integer = Button1.Height

        Dim btnwidth As Integer = Button1.Width

        If Me.ClientRectangle.Height <> btnSide Then

            '设置控件工作区的大小

            'Me.SetClientSizeCore(btnwidth, btnSide)

            Me.SetClientSizeCore(width, btnSide) '这里使用工作区的宽是因为:按钮和picturebox可以调整宽度

            '上面的语句激发了嵌套的Resize事件,因此需要立即退出,如果不退出,就会反复调用进入死循环

            Exit Sub

        End If

 

        '调整子控件的大小

        'Txt.SetBounds(0, 0, width, btnSide)

        'Btn.SetBounds(width - 19, 2, 17, btnSide - 4)

 

        Me.PictureBox1.SetBounds(0, 0, width, btnSide)

        Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage

        Me.Button1.SetBounds(0, 0, width, btnSide)

 

    End Sub

End Class

‘/////////////////////////////////////////// 闵峰

 

WPF自定义图片按钮控件 在wpf中,如果要想给按钮控件Button加上图片,最直接的做法是修改控件模板,在模板中加入想要的图片,代码如下图所示: 阅读详情

相关推荐

VC自定义图片按钮控件的实现

VC自定义图片按钮控件的实现   (转载)以前编写过五子棋程序的框架,整个程序的背景都是我用photoshop画的,当然也包括几个按钮。 说是按钮,其实就是图片上的按钮,跟vc的按钮控件是完全不同,但是当时我想让画的按钮也响应鼠标动作比如鼠标移动到按钮上,鼠标单击等,方法很笨,就是在主对话框中对鼠标的移动和单击动作进行检测,如果发生位置位于按钮区,就在“按钮”区另贴一幅图,以实现鼠标在其上的效

墨鱼的博客 564

VB.NET中制作图片按钮

图片按钮:思路:很简单,就是在一个picturebox控件上放置一个button控件,然后将这个button添加进picturebox上(确保先拖拽picturebox,后拖拽button),设置这个button的背景色(这个时候是相对于picturebox)为透明。  Imports System.ComponentModelPublic Class picturebutton    Inher

闵峰的专栏 2883

VB.net编程实现Wince下的图片按钮自定义控件

Imports System.Reflection Imports System.Drawing.Imaging Public Class PictureButtonToolbar     Inherits System.Windows.Forms.UserControl     Public Enum Layout         Left = 0         right = 1

执着于我的执着 1356

VB.NET 章鱼哥出品--入门基础Button控件的使用详解(一)

全网最全的Button控件详解!!!Button 按钮是VB.NET 中最基础,也是最常用的控件,不管你是初学者还是大牛。每个程序中必然少不了Button按钮。但是Button控件有很多用法很多大牛却不见得知道。用的最多的无非就是在点击事件中处理程序,今天我将使用2到3篇文章的篇幅来详细讲解Button按钮的用法。 1,属性(以最常用的开始) (1)Name属性 定义按钮的名称,可以是英文也

zhangyubishoulin的专栏 7628

WPF图片按钮

在WPF中,按钮是单一的只有文字或者设置背景图片,而没有同时存在图片和文字的按钮,所以需要我们自己去做一个图片按钮控件,控件效果如下: 我是创建自定义控件来实现的。创建ImageButton自定义控件后,在Generic.xaml的代码如下: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006...

D&M的博客 1183

vb.net Excel2007相关操作,包括图片插入

vb.net Excel2007相关操作,包括图片插入

使用CSS给ASP.NET中的Button按钮添加一个指定位置的图片

<br />有些时候我们在给按钮赋值内容后,还想在文字后面加一个指示图片,使按钮作用更醒目。<br /> <br />没加图片前如图:<br /><br /> <br />添加图片后如图:<br /><br /> <br />代码如下:<br /><asp:Button runat="server" ID="btnPopupMenu" Text="操作方式" <br />Style="background-color: Transparent;background-image: url(/images/mo

Lee19719409的专栏 9676

拆解人形机器人:核心硬件与驱动系统

本文深入解析人形机器人的核心硬件系统,将其类比为"骨骼+肌肉+神经"的集成体。重点介绍了三大关键组件:驱动单元(无框力矩电机和空心杯电机)、传动单元(谐波减速器和行星滚柱丝杠)以及感知单元(力矩传感器、编码器和IMU)。文章指出一体化关节模组正成为行业趋势,能够实现更紧凑的结构和更高的可靠性。同时分析了硬件价值量分布,强调丝杠、电机等部件是当前技术高地和成本重心。最后指出随着技术进步,机器人价值将更多向"大脑"和"神经"转移。

小明的博客 1529

C++ MFC 自定义控件:【按钮/CButton】,使用GDI贴图,设置图片、按钮圆角,点击切换图片,可实现多种按钮风格。

C++ MFC GDI 自定义控件:按钮/CButton 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边 目录 C++ MFC GDI 自定义控件:按钮/CButton 文章目录 前言 一、如何制作MFC自定义控件? 二、使用步骤 1. stdafx.h头文件最后加入: 2. 初始化GDI: 3.创建自定义的ButtonEx头文件和实现: 4....

baidu_27541197的博客 4021

C#创建COM组件,QT调用COM组件简单测试(VS2008+QT4.6.4)

一. C#创建组件: 1. VS2008新建一个项目,选择Visual C#, Class library 修改Properties下面的AssemblyInfo.cs文件,ComVisible属性设置为True,即:[assembly: ComVisible(true)] 2. 右击项目,选择“属性”, 选择“生成”选项卡,把“为COM互操作注册”勾选上 选择“签名”选项卡,把“

3517

PSINS工具箱15状态组合导航仿真程序(test_SINS_GPS_153)浅析-卡尔曼滤波设置+导航解算

文章目录test_SINS_GPS_153源码poserrsetkfinitgabiaskfupdate流程 test_SINS_GPS_153源码 poserrset function poserr = poserrset(dpos0, dlon, dhgt) % position errors dpos=[dlat;dlon;dhgt] setting. % % Prototype: poserr = poserrset(dpos0) % Input: dpos0=[dlat; dlon; dhgt],

十八与她的博客 2160

Labview按钮自定义控件素材(png图片)

Labview按钮自定义控件素材(png图片) 【下载地址】Labview按钮自定义控件素材png图片 本仓库提供了一系列用于Labview按钮自定义控件的素材,这些素材以png图片格式提供,可以让您的Labview按钮变得更加美观和个性化 ...

gitblog_09805的博客 594

【参数不确定】敏感性分析(sensitivity analysis)

【运筹学】灵敏性分析

羊肉蛋花汤的博客 14万+

动态控件Creat()和 自定义图片按钮

最近在用mfc锻炼我的c++水平,所以出现了各种问题,下文很好的解决了动态生成控件的问题,很有借鉴意义!  本文转载自http://blog.youkuaiyun.com/luy3728000/article/details/8193918 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。    一、创建动态控件:   为了对照,我们先来看一下静

zhangbo_0323的博客 820

支付系统保证可靠性的秘诀 ----- 订单的补偿和补单

文章目录WHAT? 前言WHY? 为什么要用多级缓存?HOW 怎么做?方案 版本1:数据库存储专线配置通过优先级进行动态上下线方案 版本1 劣势:方案 版本2 :本地缓存替代数据库方案 版本2 劣势:方案 版本3:分布式缓存做自动补偿方案 版本3 总结:Where 分布式多级缓存还能用在哪些地方?总结 WHAT? 前言 刚入职场的时候觉得支付宝等第三方支付系统好强大,要保证这么多的交易不能错,也不能重复还要保证正确的扣钱,直到后面接触订单系统以及第三方支付公司的核心交易系统后才真正窥探到了支付系统的核心

boboaisisi的专栏 3534

基于Flink的流式数据降维实现方案

理解为何实时场景需要降维(解决维度灾难)掌握Flink流处理与降维算法的结合方式学会用Flink实现一个可落地的流式降维系统覆盖内容包括:Flink流处理基础、降维算法选择(侧重在线算法)、Flink与降维的集成方案、实战代码示例,以及工业级场景的应用经验。本文从“为什么需要流式降维”出发,用“快递分拣”的生活案例引出核心概念;接着拆解Flink流处理、数据降维的底层逻辑;然后重点讲解“在线PCA”这一适合流式场景的降维算法,并用Flink实现一个完整的流式降维管道;

AI 领航者的博客 566

[转]android自定义控件 一个带图片和文字的按钮

本文转自:http://www.cnblogs.com/delia/archive/2012/03/09/2387934.html 今天和大家分享下组合控件的使用。很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便的一个方法。今天就来介绍下如何使用组合控件,将通过两个实...

weixin_30525825的博客 103

EtherCAT ROS2 入门教程(一)

本文介绍了EtherCAT驱动与ROS2的集成方案,主要包括三部分内容:1)在Ubuntu 22.04上安装IgH EtherCAT主站的详细步骤,包括内核配置、源码编译和网络适配器设置;2)构建ethercat_driver_ros2,通过ros2_control描述文件配置硬件接口和EtherCAT从站模块插件;3)使用方法,包括启动EtherCAT主站和运行配置包。该方案支持通过参数文件定义硬件接口,并提供通用和专用两种EtherCAT模块插件,便于开发基于EtherCAT的工业应用。

机器人控制与仿真应用 1529

自定义QPushButton特效按钮,可随图片变换不规则按钮控件和文字位置

自定义特效按钮,可随图片变换不规则按钮控件和文字位置 可设置按钮不同状态的按钮和响应,通过重写鼠标等事件进行相关业务和操作处理 头文件内容如下: #ifndef PIXMAPBUTTON_H #define PIXMAPBUTTON_H #include &lt;QPushButton&gt; class PixmapButton : public QPushButton {   Q_OB...

SmallBottle-CGWLMX的博客 1930

[特殊字符] 2026终极实战:Python爬取得物App球鞋实时交易价格 —— 从签名破解到数据可视化全栈指南

价格敏感度:热门鞋款(如Air Jordan 1、Yeezy 350、Dunk SB)价格每分钟都在波动,短线套利空间巨大。稀缺性:限量发售、联名款、地区限定,导致供需关系实时变化。数据壁垒:得物App使用自研WMS签名算法设备指纹绑定动态请求头加密,是爬虫工程师的“练兵场”。本博客将手把手带你从零搭建一套生产级得物球鞋价格爬虫系统,涵盖:抓包与逆向分析(mitmproxy + Frida)签名算法逆向(Python复刻)设备模拟与心跳保活(ADB + uiautomator2)

2201_76125261的博客 1125

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SWT开发--自定义图片按钮的实现

最近开发RCP控件,需要页面较为美观,虽然使用SWT/JF有点

Pazza_Infer的专栏 6207

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

android图片按钮,android自定义按钮示例(重写imagebutton控件实现图片按钮)

package me.henji.widget;import android.content.Context;import android.graphics.ColorMatrix;import android.graphics.ColorMatrixColorFilter;import android.util.AttributeSet;import android.view.MotionEve...

weixin_39647734的博客 248

ssm框架搭建

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

图片汉子按钮android,Android控件之利用selector自定义的带文字的图片按钮

经常用Android编程的人肯定会发现,Android提供的Button和ImageButton控件使得按钮可以带上图片和文字,也就是(1)Button用android:background属性可以给按钮添加背景图片,android:text属性可以给按钮添加文字。但是有一点很明显的缺陷就是不能改变按钮的背景图片;(2)ImageButton用android:src属性可以给按钮添加背景图片,an...

weixin_36250220的博客 352

(按钮)上面为图片下部为文字的 按钮 控件

有的时候在做一些基础控件的时候系统的不能满足需要,就需要自己自定义一些控件了,这个按钮是上面显示图片,下半部分显示文字. #import @interface CollectView : UIView @property(nonatomic,copy) NSString* title; @property(nonatomic,strong) UI

清晰的轮廓 2682
上一篇: 关于如何操作其他窗体的控件或变量的方法!
下一篇: 自定义控件--xp风格按钮(可设置文字颜色)
HanMo
博客等级 码龄26年 8粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值