winform怎么实现凹凸按键 点击后处于凹陷状态 再次点击弹起

q514849152 2015-02-06 04:01:04
效果图 ,不好意思哈 没有多少分。
...全文
1646 21 打赏 收藏 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
微wx笑 2015-03-12
  • 打赏
  • 举报
回复
维护一个变量记录状态,点击时根据状态更换图片。
  • 打赏
  • 举报
回复
楼主知道怎么做,就是不想自己动手而已
layershow 2015-02-09
  • 打赏
  • 举报
回复
RadioButton 和 CheckBox 他们都有一个属性 Appearance 设置为 Button 时 都是 Windows PushButton 用哪个取决于你的设计,是想一个按下另外一个弹起来还是怎样
黎大 2015-02-09
  • 打赏
  • 举报
回复
原声按钮,手动重绘,编辑onclick,设置奇偶计数变量,
zujinsheng 2015-02-08
  • 打赏
  • 举报
回复
或者选中的时候, 改变一下背景色喽.. 多简单明了
七步777 2015-02-08
  • 打赏
  • 举报
回复
引用 楼主 q514849152 的回复:
效果图 ,不好意思哈 没有多少分。
根据你的需求,建议采用自定义控件。 我这里有一个自定义的按钮控件,实现的功能是鼠标滑到按钮上的时候,显示一个提示信息。

//继承原Button
    public partial class ButtonTip : Button
    {
        private string tipText;
        private ToolTip tip;
        public ButtonTip()
        {
            InitializeComponent();
            this.MouseEnter += new EventHandler(ButtonTip_MouseEnter);
            this.MouseLeave += new EventHandler(ButtonTip_MouseLeave);
        }

        void ButtonTip_MouseLeave(object sender, EventArgs e)
        {
            tip.Dispose();
        }

        void ButtonTip_MouseEnter(object sender, EventArgs e)
        {

            tip = new ToolTip();
            tip.SetToolTip(this, tipText);
            tip.Show(tipText, this, this.Width / 2, -this.Height + 3);
        }

        [Browsable(true)]
        [Description("get or set text would be shown on the button when the point of your mouse is hovering on it!\n获取或设置鼠标指针悬停在按钮上时要显示的文本")]
        [Category("TipButton")]
        [RefreshProperties(RefreshProperties.All)]
        public String TipText
        {
            get
            {
                return tipText;
            }
            set
            {
                if (value != null)
                {
                    if (value.Length < 1)
                    {
                        tipText = Text;
                    }
                    else
                    {
                        tipText = value;
                    }
                }
                else
                {
                    tipText = Text;
                }
            }
        }
    }
你可以先定义个BOOL,点第下,换掉背景图片,改为true,在点一下,再把图片换回去,改为false。 做好了,剩下的就是拖控件了。
於黾 2015-02-07
  • 打赏
  • 举报
回复
最简单的办法,不用重绘 就是按下时变个深一点的颜色,就完了 再按一下,颜色变回来。 总之能把按下的那个和其他的区分开来就得了
於黾 2015-02-07
  • 打赏
  • 举报
回复
自己画不好,还不想找美工,还嫌系统控件丑 你是有多任性啊 就好像家里只有方便面,说不喜欢吃方便面,自己又不会做饭,又懒得下饭馆,又没钱请厨师 那就饿着吧
SmileSkyNet 2015-02-07
  • 打赏
  • 举报
回复
楼上的可以实现功能,但是效果不是很好,最好是自己写个控件继承picturebox 然后给按上面说的给两个状态图片,并加一个属性bool Selected,在控件Click事件中加入 if(Selected) { //显示按下图片  Selected=false; } else { //显示正常图片  Selected=true; }
EdsionWang 2015-02-07
  • 打赏
  • 举报
回复
设置button的FlatStyle属性(PopUp、Flat)
q514849152 2015-02-07
  • 打赏
  • 举报
回复
引用 9 楼 Forty2 的回复:
可以用RadioButton并把它的Appearance设置为Button,就是凹凸按键:
public Form1()
{
    InitializeComponent();
    for (int i = 0; i < 4; i++)
    {
        RadioButton rb = new RadioButton()
        {
            Appearance = Appearance.Button,
            Text = "Button " + i,
            Location = new Point(30, 30 * i),
        };
        this.Controls.Add(rb);
    }
}
这个达不到这种效果 点击的时候按钮没有凹陷下去
Forty2 2015-02-07
  • 打赏
  • 举报
回复
可以用RadioButton并把它的Appearance设置为Button,就是凹凸按键:
public Form1()
{
    InitializeComponent();
    for (int i = 0; i < 4; i++)
    {
        RadioButton rb = new RadioButton()
        {
            Appearance = Appearance.Button,
            Text = "Button " + i,
            Location = new Point(30, 30 * i),
        };
        this.Controls.Add(rb);
    }
}
本拉灯 2015-02-06
  • 打赏
  • 举报
回复
引用 6 楼 q514849152 的回复:
[quote=引用 2 楼 wyd1520 的回复:] 用两张图片+PictureBox就可以实现了呀汗。 按下时变成凹的图片同时记录一个属性 继承PictureBox类 重写Click方法 private bool Selected; protected override void OnClick(EventArgs e) { this.Selected=!this.Selected; this.Image=this.Selected? Image1:Image2; }
不想找美工啊 [/quote] ...你打开PS把上面的图切出来,现在都可以做完了。再说了你想用原生的地你要自己用GDI画,不累么,最终效果还是一样的。
q514849152 2015-02-06
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
[quote=引用 3 楼 q514849152 的回复:] 不想这样子实现 想用原生的按钮 实现
原生按钮就是鼠标点下凹陷,鼠标放开抬起,没有这功能 而且也没有按钮上显示斜线的功能 反正你也是得重绘,直接重绘整个按钮不就得了[/quote] 知道重绘 绘的很不像 看看大家有没有现成的代码
q514849152 2015-02-06
  • 打赏
  • 举报
回复
引用 2 楼 wyd1520 的回复:
用两张图片+PictureBox就可以实现了呀汗。 按下时变成凹的图片同时记录一个属性 继承PictureBox类 重写Click方法 private bool Selected; protected override void OnClick(EventArgs e) { this.Selected=!this.Selected; this.Image=this.Selected? Image1:Image2; }
不想找美工啊
於黾 2015-02-06
  • 打赏
  • 举报
回复
引用 3 楼 q514849152 的回复:
不想这样子实现 想用原生的按钮 实现
原生按钮就是鼠标点下凹陷,鼠标放开抬起,没有这功能 而且也没有按钮上显示斜线的功能 反正你也是得重绘,直接重绘整个按钮不就得了
於黾 2015-02-06
  • 打赏
  • 举报
回复
或者重绘,其实不过是放的图片不是图片文件,而是自己GDI+画的,一回事 你也可以继承button之后再重绘,做成自定义控件,这样不用每个按钮都来一遍这个过程
q514849152 2015-02-06
  • 打赏
  • 举报
回复
不想这样子实现 想用原生的按钮 实现
本拉灯 2015-02-06
  • 打赏
  • 举报
回复
用两张图片+PictureBox就可以实现了呀汗。 按下时变成凹的图片同时记录一个属性 继承PictureBox类 重写Click方法 private bool Selected; protected override void OnClick(EventArgs e) { this.Selected=!this.Selected; this.Image=this.Selected? Image1:Image2; }
於黾 2015-02-06
  • 打赏
  • 举报
回复
放俩图片,一个是按下去的,一个是弹出来的,切换显示
内容概要:本文详细描述了机械零件Part4的设计与建模过程,重点围绕三维建模中的几何构造操作展开。首先基于原零件三视图确定关键尺寸,依次创建多个同心圆柱体结构,包括外层圆柱体(52、52、5)、中间圆柱体(25、25、7)以及中心孔结构(16、16、12)。随后对底部圆柱体进行临时加高处理,以便在顶面草绘中构建辅助图形:以计算得出的半径17.5画圆,并在其接触面上方绘制半径为3的小圆,进而引出两条分别成60°和-60°的斜线,配合一条水平线形成三角形轮廓。接着在其余两角复制相同的小圆结构,清理多余线条后完成草图设计。利用该草图执行“拉伸切除”操作,深度设为16.28mm,实现特征开槽。最后将底部圆柱体恢复原始高度5mm,完成整体结构修改。; 适合人群:具备基础CAD建模能力的机械设计人员或工科类学生;熟悉SolidWorks、AutoCAD等三维设计软件的操作者;从事零部件逆向设计或结构优化的技术人员。; 使用场景及目标:①用于学习复杂零件的分步建模方法,掌握从三视图到三维实体的转换技巧;②理解拉伸、切除、草图约束、包围盒设置等核心建模命令的实际应用;③提升对尺寸链计算、辅助线构建及几何关系控制的理解与实践能力。; 阅读建议:建议结合文中参数逐步在建模软件中复现操作,重点关注草图绘制逻辑与切除特征的关联性,注意各步骤间的顺序依赖关系,避免因尺寸或约束错误导致建模失败。
内容概要:本文系统阐述了基于格子Boltzmann方法(Lattice Boltzmann Method, LBM)对二维通道内多孔介质流动进行数值模拟的理论体系、Matlab代码实现流程及结果验证方法。深入剖析了LBM在处理复杂流体系统尤其是不规则几何结构多孔介质流动中的独特优势,详细介绍了模型构建过程、边界条件设定、碰撞与传播环节的算法实现机制,并通过Matlab编程完成仿真运算,实现了对速度场、压力场等关键物理量的可视化分析与精度验证,确保模拟结果具备良好的准确性与可靠性。; 适合人群:具备流体力学基础知识和一定Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事多孔介质流动、计算流体力学(CFD)或LBM方法研究的相关领域研究人员。; 使用场景及目标:①掌握格子Boltzmann方法的核心原理及其在多孔介质流动模拟中的具体应用;②学习利用Matlab实现LBM算法并开展科学计算与结果可视化的方法;③为相关科研项目、学术论文复现或实际工程仿真提供可复用的代码框架与技术实施路径。; 阅读建议:建议读者结合流体力学与数值计算相关背景知识,逐步理解算法推导过程,动手运行并调试所提供的Matlab代码,通过调整参数或几何模型加深对LBM方法灵活性与适用性的认识,同时鼓励将该方法拓展至三维流动或多物理场耦合问题的研究中。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧