日期:2014-05-18  浏览次数:23028 次

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



------解决方案--------------------
现成的btn就能实现你的需求 自己动脑子想想吧 很简单的 如果非要找那样的控件 估计很难找到现成的 你自己绘制吧
------解决方案--------------------
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 = 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;
            }
        }
    }

------解决方案--------------------
3楼方法正解。帮你顶一个
------解决方案--------------------
其实给按钮加两张图片就行,两张图片轮换着用。。
------解决方案--------------------
以前学VB时,遇到这种问题就是按5楼说的那样做的。
------解决方案--------------------
探讨
其实给按钮加两张图片就行,两张图片轮换着用。。

------解决方案--------------------
探讨
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 = …

------解决方案--------------------
我同意3楼的做法,然后在判断中写要执行的操作。
------解决方案--------------------
探讨
其实给按钮加两张图片就行,两张图片轮换着用。。

------解决方案--------------------
似乎自带的button没有弹起事件。
好像得自己添加控件
------解决方案--------------------
up
------解决方案--------------------
mark