有一个Button控件btnSoundStatus,当单击一下鼠标左键按下这个Button时,释放鼠标它不会弹起,而是保持凹陷状态,开始给炉子加热,
当再次单击这个Button时它才弹起,停止给炉子加热。因此Button在这就相当于一个开关,第一次将其按下启动电源开始加热,
以后再按一下则弹起来,断开电源停止加热。
请问这个功能应该怎样实现,我看了Button只有一个Click事件,而且每次单击Button释放左键后Button也自动弹起了,要怎样才能不让它自动
弹起呢?还有我发现ToggleButton控件能够满足我的要求,但这个控件我不会用在MSDN上也查不到用法,不知是否有人知道怎么用?
请各位帮帮忙,谢谢!
17 个解决方案
#1
希望各位大虾写得尽量详细点,谢谢!
#2
现成的btn就能实现你的需求 自己动脑子想想吧 很简单的 如果非要找那样的控件 估计很难找到现成的 你自己绘制吧
#3
//使用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;
}
}
}
#4
3楼方法正解。帮你顶一个
#5
其实给按钮加两张图片就行,两张图片轮换着用。。
#6
以前学VB时,遇到这种问题就是按5楼说的那样做的。
#7
。。。
#8
这是设置不同的style ,根据你执行的事情不同; 另一种就是加载不同的图片!
#9
我同意3楼的做法,然后在判断中写要执行的操作。
#10
这个应该是最简单的办法。
#11
似乎自带的button没有弹起事件。
好像得自己添加控件
好像得自己添加控件
#12
up
#13
mark
#14
谢谢各位的解答,三楼的方法很好用。
#15
看看3楼的答案
#16
来看看三楼正解。。。
#17
用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 = "弹起状态";
.....
}
}
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 = "弹起状态";
.....
}
}
#1
希望各位大虾写得尽量详细点,谢谢!
#2
现成的btn就能实现你的需求 自己动脑子想想吧 很简单的 如果非要找那样的控件 估计很难找到现成的 你自己绘制吧
#3
//使用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;
}
}
}
#4
3楼方法正解。帮你顶一个
#5
其实给按钮加两张图片就行,两张图片轮换着用。。
#6
以前学VB时,遇到这种问题就是按5楼说的那样做的。
#7
。。。
#8
这是设置不同的style ,根据你执行的事情不同; 另一种就是加载不同的图片!
#9
我同意3楼的做法,然后在判断中写要执行的操作。
#10
这个应该是最简单的办法。
#11
似乎自带的button没有弹起事件。
好像得自己添加控件
好像得自己添加控件
#12
up
#13
mark
#14
谢谢各位的解答,三楼的方法很好用。
#15
看看3楼的答案
#16
来看看三楼正解。。。
#17
用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 = "弹起状态";
.....
}
}
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 = "弹起状态";
.....
}
}