当前位置:编程学习 > C#/ASP.NET >>

paint事件

谁能告诉我
想在每次按下指定的键盘上的键就调用paint事件
  举个例子  我按下a的时候就调用paint事件,按下b的时候就不调用
帮我把代码写一下!!!!
  help
  ~!!!!!!!!!! --------------------编程问答-------------------- Keydown时间中调用paint就可以啊 --------------------编程问答--------------------

// 按键事件中改变 isPaint的值

bool isPaint = false;
private void Form1_Paint(object sender, PaintEventArgs e)
{
    if (isPaint)
    {
        // ....
    }
}
--------------------编程问答-------------------- protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
        { 
            if(keyData  == Keys.A) 
            { 
               //调用  
                return true; 
            } 
                return base.ProcessCmdKey (ref msg, keyData); 
        } 
或 
private void frmLogin_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) 
        { 
            if(e.KeyCode == Keys.A) 
            { 
                //调用    
            } 
        } 
--------------------编程问答-------------------- 你能给写的详细点么??、
谢谢了

!!!!!!!!!!!! --------------------编程问答--------------------
        bool bPaint = false;
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            if (bPaint)
            {
                Console.WriteLine("HELLO");
                bPaint = false;
            }
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 'a')
            {
                bPaint = true;
                this.Refresh();
            }
        }
--------------------编程问答-------------------- 调用那不应该怎么写???? --------------------编程问答--------------------
引用 5 楼 qqiuzaihui 的回复:
 
....
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {if (e.KeyChar=='a')
            {
                bPaint=true;this.Refresh();
            }
        }

三楼写的比我好, 把我的这部分代码替换成他的:
[code=C#]        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.A)
            {
                bPaint = true;
                this.Refresh();
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
就可以实现你的要求了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,