C#中怎样设置Button控件的按下和弹起事件

amisyyq 2008-11-17 10:51:58
在C#的Windows编程中,我用了一个Button控件,现在我想实现以下功能,请问应该怎样写?
有一个Button控件btnSoundStatus,当单击一下鼠标左键按下这个Button时,释放鼠标它不会弹起,而是保持凹陷状态,开始给炉子加热,
当再次单击这个Button时它才弹起,停止给炉子加热。因此Button在这就相当于一个开关,第一次将其按下启动电源开始加热,
以后再按一下则弹起来,断开电源停止加热。
请问这个功能应该怎样实现,我看了Button只有一个Click事件,而且每次单击Button释放左键后Button也自动弹起了,要怎样才能不让它自动
弹起呢?还有我发现ToggleButton控件能够满足我的要求,但这个控件我不会用在MSDN上也查不到用法,不知是否有人知道怎么用?
请各位帮帮忙,谢谢!

...全文
6940 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
weilulove 2012-03-31
  • 打赏
  • 举报
回复
用checkBox,在属性中设置
this.checkBox1.Appearance = System.Windows.Forms.Appearance.Button;

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
checkBox1.Text = "按下状态";
...
}
if (checkBox1.Checked == false)
{
checkBox1.Text = "弹起状态";
.....
}

}
professorsnape 2010-06-25
  • 打赏
  • 举报
回复
来看看三楼正解。。。
windpopos 2009-12-15
  • 打赏
  • 举报
回复
看看3楼的答案
xudixin 2008-11-18
  • 打赏
  • 举报
回复
以前学VB时,遇到这种问题就是按5楼说的那样做的。
止戈而立 2008-11-18
  • 打赏
  • 举报
回复
其实给按钮加两张图片就行,两张图片轮换着用。。
amisyyq 2008-11-18
  • 打赏
  • 举报
回复
谢谢各位的解答,三楼的方法很好用。
tianshimeng724 2008-11-18
  • 打赏
  • 举报
回复
mark
qinhl99 2008-11-18
  • 打赏
  • 举报
回复
up
abcfy2 2008-11-18
  • 打赏
  • 举报
回复
似乎自带的button没有弹起事件。
好像得自己添加控件
walkghost 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 min_jie 的回复:]
其实给按钮加两张图片就行,两张图片轮换着用。。
[/Quote]
这个应该是最简单的办法。
jiaxintaiyang 2008-11-18
  • 打赏
  • 举报
回复
我同意3楼的做法,然后在判断中写要执行的操作。
jietuan 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 duping9626 的回复:]
C# code
//使用radiobutton替找可以达到同样的效果
public partial class Form1 : Form
{
//按下状态标识
private bool m_btnState;

public Form1()
{
InitializeComponent();

//将radiobutton设为按钮形式
this.radioButton1.Appearance = System.Windows.Forms.Appearance.Button;
this.radioButton1.Checked = …
[/Quote]

这是设置不同的style ,根据你执行的事情不同; 另一种就是加载不同的图片!
tzbgaler 2008-11-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 min_jie 的回复:]
其实给按钮加两张图片就行,两张图片轮换着用。。
[/Quote]
。。。
啊兵 2008-11-17
  • 打赏
  • 举报
回复
3楼方法正解。帮你顶一个
duping9626 2008-11-17
  • 打赏
  • 举报
回复

//使用radiobutton替找可以达到同样的效果
public partial class Form1 : Form
{
//按下状态标识
private bool m_btnState;

public Form1()
{
InitializeComponent();

//将radiobutton设为按钮形式
this.radioButton1.Appearance = System.Windows.Forms.Appearance.Button;
this.radioButton1.Checked = false;
this.m_btnState = this.radioButton1.Checked;
}

//点击时切换接下状态
private void radioButton1_Click(object sender, EventArgs e)
{
if (m_btnState == false)
{
this.radioButton1.Checked = true;
this.m_btnState = true;
}
else
{
this.radioButton1.Checked =false;
this.m_btnState=false;
}
}
}
ChargeForward 2008-11-17
  • 打赏
  • 举报
回复
现成的btn就能实现你的需求 自己动脑子想想吧 很简单的 如果非要找那样的控件 估计很难找到现成的 你自己绘制吧
amisyyq 2008-11-17
  • 打赏
  • 举报
回复
希望各位大虾写得尽量详细点,谢谢!

111,077

社区成员

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

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

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