none
PictureBox在平板上無法畫圖 RRS feed

  • 問題

  • Dear 各位前輩

    目前遇到一個問題

    就是利用picturebox做簽名的動作

    在PC測試時,皆可達到簽名的動作

    但是程式移到平板上

    利用平板的筆來簽名

    就無法簽名了

    程式如下

    利用Log去看,平板上的e.Button都是 MouseButtons.none

    但PC測試程式時皆為 MouseButtons.Left 

    另外,另一個版本的程式在平板上就是正常的 MouseButtons.Left

    所以已排除利用平板筆無法達到MouseButtons.Left 這疑慮

    想請教是哪裡疏忽了嗎? 還是前輩們有其他可以推薦找問題的方法

    感謝前輩們提供~~~~~

     private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
            {
                mdx = e.X;
                mdy = e.Y;
                bg = new Bitmap(pictureBox1.Image);
            }
    
            private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
               
                
                switch (e.Button)
                {                
                    case MouseButtons.Left:
                        Bitmap bmp = new Bitmap(pictureBox1.Image);
                        Graphics g = Graphics.FromImage(bmp);
                        Pen p = new Pen(Color.Blue, 2);
                        g.DrawLine(p, mdx, mdy, e.X, e.Y);
                        pictureBox1.Image = bmp;
                        pictureBox1.Refresh();
                        mdx = e.X;
                        mdy = e.Y;
                        break;
                    case MouseButtons.Right:
                        break;
                    case MouseButtons.None:
                        
                        break;
                }
    
                
            }


    2014年5月8日 上午 02:01

解答

所有回覆

  • 我以前是 增加一個 isDrawing  的 field 去記 是否正在畫圖 , 預設是false

    然後 在 mousedown 設為true 在 mouseup 設為 false

    mousemove 時 檢查 isDrawing 是 true 才畫線


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年5月8日 上午 02:33
    • 已標示為解答 GinoLin 2014年5月9日 上午 09:46
    2014年5月8日 下午 01:03
  • 您可以參考這個現成的範例:Creating a User Control to Capture Signatures on a Tablet PC

    太厲害了!!! 我來玩看看!!! tihs 大大非常感恩!!!
    • 已標示為解答 GinoLin 2014年5月9日 上午 09:46
    • 已取消標示為解答 GinoLin 2014年5月9日 上午 09:46
    2014年5月9日 上午 09:40
  • 我以前是 增加一個 isDrawing  的 field 去記 是否正在畫圖 , 預設是false

    然後 在 mousedown 設為true 在 mouseup 設為 false

    mousemove 時 檢查 isDrawing 是 true 才畫線


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    謝謝 Alex 老師

    我有參照你的提醒

    不過不知道哪裡疏忽

    目前狀況還是一樣

    2014年5月9日 上午 09:41
  • 使用isDrawing 不判別 e.Button

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2014年5月11日 上午 03:34
  • 使用isDrawing 不判別 e.Button

    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

     老師謝謝!! 應該是哪裡有問題~~ 我還是有問題

    不過我後來找到,順利完成 (趕專案!只能先把那問題丟在旁)

    http://msdn.microsoft.com/zh-tw/library/Microsoft.Ink(v=vs.90).aspx

    這個命名空間包含可在 Tablet PC 上實作數位筆墨的 API。

    CodeProject 的範例

    【Using Microsoft Ink Picture control】

    http://www.codeproject.com/Articles/557738/UsingplusMicrosoftplusInkplusPicturepluscontrol

    2014年5月14日 上午 09:34