none
曾經使用過keydown 但刪除後keypress完全無法觸發 RRS feed

  • 問題

  •  private void Form1_KeyPress_1(object sender, KeyPressEventArgs e)
            {
                for (int i = 0; i < 6; i++)
                {

                    if (e.KeyChar == Convert.ToChar(piccheck[i]))
                    {
                        a = i;
                        hit();
                        s = s + 100;
                        label3.Text = s.ToString();
                        switch (s)
                        {
                            case 3000:
                                pictureBox1.Load("背景(傍晚).jpg");
                                l = l + 1;
                                label5.Text = l.ToString();
                                timer1.Interval = 300;
                                break;
                            case 5000:
                                pictureBox1.Load("背景(晚上).jpg");
                                l = l + 1;
                                label5.Text = l.ToString();
                                timer1.Interval = 200;
                                break;
                        }
                        break;
                    }
                }
            }

    一開始是使用keydown,但事後查詢發現那個ding的聲音好像無法取消,所以改用keypress

    但在程式裡面放置中斷點後,keypress完全不會觸發,反而還會一直有ding的聲音

    兩者寫的內容相同,只是int 跟 char之間的轉型而已。

    大致內容是產生英文字母,透過按鍵來判斷是否正確。


    • 已編輯 tomas890628 2019年6月22日 下午 02:11 錯字
    2019年6月22日 下午 02:11

所有回覆

  • 你有看過備註寫啥嗎?

    https://docs.microsoft.com/zh-tw/dotnet/api/system.windows.forms.control.keypress?view=netframework-4.8


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年6月22日 下午 03:52
  • 你有看過備註寫啥嗎?



    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    大大您好,第一次在此平台發問,且第一次使用KEYPRESS這個方式

    不知您所說的部份是不是指E.HANDLED這部分呢?

    還是將KEYPRESSEVENTARGS.HANDLED這個東西呢?




    2019年6月22日 下午 04:30
  • ...

    各大論壇有簽名檔功能,是常識。

    線上手冊有一節,節名 就叫 備註。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年6月22日 下午 05:22
  • ...

    各大論壇有簽名檔功能,是常識。

    線上手冊有一節,節名 就叫 備註。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    簽名檔的部分之後有發現了,抱歉

    備註部分有看過了,發生順序之前看過也了解了,handled部分剛剛看了一下,感覺是限制輸入的部分

    但我還是找不到我的問題所在點,還請大大解惑

    2019年6月22日 下午 05:25
  • 您的函式名稱叫做Form1_KeyPress_1, 可以注意一下, 是否還有另外一個函式名稱叫做Form1_KeyPress, 而按鍵時被觸發的函式是Form1_KeyPress
    2019年6月22日 下午 11:30
  • 您的函式名稱叫做Form1_KeyPress_1, 可以注意一下, 是否還有另外一個函式名稱叫做Form1_KeyPress, 而按鍵時被觸發的函式是Form1_KeyPress

    您好,我是因為前一個不能用 所以我把它註解之後再新增新的,所以他是1很正常這部分有確認過了
    2019年6月23日 上午 03:16
  • 您可以:

    1) 在Form1_KeyPress_1函式設定中斷點

    2) 執行程式

    3) 按a鍵

    看程式有沒有中斷在Form1_KeyPress_1函式?

    2019年6月23日 上午 04:38
  • 您可以:

    1) 在Form1_KeyPress_1函式設定中斷點

    2) 執行程式

    3) 按a鍵

    看程式有沒有中斷在Form1_KeyPress_1函式?

    您好,沒有,我在猜想會不會是keydown沒有刪除乾淨,但我透過ctrl+f搜尋也沒有找到,

    會這樣懷疑是因為,把keydown註解掉之後,還是會有之前的ding的提示音。

    2019年6月23日 上午 05:19
  • 直接打開 Form1.Designer.cs (這就是你在設計畫面上做處理後會產生的程式碼)

    直接看 Form1 的那些 Events 接到哪些 Methods (範例圖表示將 Form1_Load Method 委派給 Form1 的 Load Event)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2019年6月23日 上午 07:32
    版主
  • 直接打開 Form1.Designer.cs (這就是你在設計畫面上做處理後會產生的程式碼)

    直接看 Form1 的那些 Events 接到哪些 Methods (範例圖表示將 Form1_Load Method 委派給 Form1 的 Load Event)




    大大您好,我已經截圖下來了,但我沒辦法發圖片,該怎麼讓您看到呢?


    2019年6月23日 上午 07:50
  • 我截圖是給你參考,你應該可以自己看出來你的 Form1 哪些事件有接上哪些方法吧 ?

    要不你就直接複製那一段 Code (和 Form1 也就是 this 相關的就好) 貼文字上來


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2019年6月23日 上午 08:16
    版主
  • 備註部分有看過了,發生順序之前看過也了解了,handled部分剛剛看了一下,感覺是限制輸入的部分

    是的,所以你貼了一個不明內容的陣列 piccheck,根本不知道是不是受限內容阿...

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2019年6月23日 上午 09:04
  • 我截圖是給你參考,你應該可以自己看出來你的 Form1 哪些事件有接上哪些方法吧 ?

    要不你就直接複製那一段 Code (和 Form1 也就是 this 相關的就好) 貼文字上來


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 

                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(1398, 744);
                this.Controls.Add(this.panel1);
                this.Controls.Add(this.pictureBox8);
                this.Controls.Add(this.label5);
                this.Controls.Add(this.label4);
                this.Controls.Add(this.label3);
                this.Controls.Add(this.label2);
                this.Controls.Add(this.textBox1);
                this.Controls.Add(this.label1);
                this.Controls.Add(this.pictureBox7);
                this.Controls.Add(this.pictureBox6);
                this.Controls.Add(this.pictureBox5);
                this.Controls.Add(this.pictureBox4);
                this.Controls.Add(this.pictureBox3);
                this.Controls.Add(this.pictureBox2);
                this.Controls.Add(this.pictureBox1);
                this.Controls.Add(this.menuStrip1);
                this.Font = new System.Drawing.Font("微軟正黑體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136)));
                this.KeyPreview = true;
                this.MainMenuStrip = this.menuStrip1;
                this.Margin = new System.Windows.Forms.Padding(5);
                this.Name = "Form1";
                this.Text = "Form1";
                this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress_1);
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
                this.menuStrip1.ResumeLayout(false);
                this.menuStrip1.PerformLayout();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox5)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox6)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox7)).EndInit();
                ((System.ComponentModel.ISupportInitialize)(this.pictureBox8)).EndInit();
                this.panel1.ResumeLayout(false);
                this.panel1.PerformLayout();
                this.ResumeLayout(false);
                this.PerformLayout();

    您好,不知道是不是這部分呢?

    2019年6月23日 上午 11:18
  • 備註部分有看過了,發生順序之前看過也了解了,handled部分剛剛看了一下,感覺是限制輸入的部分

    是的,所以你貼了一個不明內容的陣列 piccheck,根本不知道是不是受限內容阿...

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    您好,piccheck陣列是用來放65~90的random數字,受限內容的部分應該怎麼看呢?

    2019年6月23日 上午 11:19
  •  this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress_1);

    這樣看起來 event 和 method 的關係應該沒有錯

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2019年6月23日 下午 06:50
    版主
  • 您有將Form的KeyPreview屬性設定為true嗎?
    2019年6月24日 上午 01:25