[ mladenmp @ 19.10.2016. 17:06 ] @
Error CS0029 Cannot implicitly convert type 'System.Windows.Input.KeyEventHandler' to 'System.Windows.Forms.KeyEventHandler'
Pozdrav svima posle dužeg vremena.

Imam jednu WPF aplikaciju koja radi kao barkod čitač.
Imam drugu aplikaciju (WIN Forms) u koju treba da implmentiram bar kod čitač.
I za kraj, imam grešku iz naslova :)

Evo i koda:
Ovdje prijavljuje grešku:
Code:

 public cashier()
        {
            InitializeComponent();

          
            this.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(cashier_PreviewKeyDown);
            this.PreviewKeyUp += new System.Windows.Input.KeyEventHandler(cashier_PreviewKeyUp);
           
        }

Ovo su funkcije:
Code:

 public void cashier_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == Key.LeftCtrl)
            {
                mLeftCtrlDown = false;
            }
            else if (mScanning)
            {
               
                e.Handled = true;
                if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
                {
                   
                    mScanShiftDown = false;
                }
            }
            listBox1.Items.Add("Up: " + e.Key.ToString());
        }

        public void cashier_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
        {
           
            if (e.Key == Key.LeftCtrl)
            {
                mLeftCtrlDown = true;
                e.Handled = true;
            }
            else
            {
                if (mScanning)
                {
                   
                    e.Handled = true;
                    if (e.Key == Key.LeftShift || e.Key == Key.RightShift)
                    {
                        mScanShiftDown = true;
                    }
                    else if (mLeftCtrlDown && e.Key == Key.C)
                    {
                        mScanning = false;
                        // listBox2.Items.Add(mScanData.ToString());
                        textBox1.Text = mScanData.ToString();
                    }
                    else
                    {
                        string xChar = mScanKeyConverter.ConvertToString(e.Key);
                        if (!mScanShiftDown)
                        {
                            xChar = xChar.ToLower();
                        }
                        mScanData.Append(xChar);
                    }
                }
                else
                {
                    if (mLeftCtrlDown && e.Key == Key.B)
                    {
                        mScanning = true;
                        mScanData.Clear();
                        mScanShiftDown = false;
                        e.Handled = true;
                    }
                }
            }
            listBox1.Items.Add("Down: " + e.Key.ToString());
      }



Je li mi može neko pomoći oko rješavanja ove greške?




[Ovu poruku je menjao mladenmp dana 20.10.2016. u 23:38 GMT+1]
[ mmix @ 19.10.2016. 17:51 ] @
WPF i Winforms ne mogu da se mesaju, bar ne na ovaj nacin.

Moj savet ti je da portujes taj deo koda za barcod citac u WinForms.



[ mladenmp @ 20.10.2016. 22:38 ] @
Hvala mmix !

Rijeseno:

Code:

 public cashier()
        {
            InitializeComponent();

          
            this.KeyDown += cashier_PreviewKeyDown;
            this.KeyUp += cashier_PreviewKeyUp;
           
        }
void cashier_PreviewKeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (e.KeyCode == Keys.LControlKey)
            {
                mLeftCtrlDown = false;
            }
            else if (mScanning)
            {
                
                e.Handled = true;
                if (e.KeyCode == Keys.LShiftKey || e.KeyCode == Keys.RShiftKey)
                {
                   
                    mScanShiftDown = false;
                }
            }
            listBox1.Items.Add("Up: " + e.KeyCode.ToString());
        }

        void cashier_PreviewKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
           
            if (e.KeyCode == Keys.LControlKey)
            {
                mLeftCtrlDown = true;
                e.Handled = true;
            }
            else
            {
                if (mScanning)
                {
                   
                    e.Handled = true;
                    if (e.KeyCode == Keys.LShiftKey || e.KeyCode == Keys.RShiftKey)
                    {
                        mScanShiftDown = true;
                    }
                    else if (mLeftCtrlDown && e.KeyCode == Keys.C)
                    {
                        mScanning = false;
                        textBox1.Text = mScanData.ToString();
                      
                    }
                    else
                    {
                        string xChar = mScanKeyConverter.ConvertToString(e.KeyCode);
                        if (!mScanShiftDown)
                        {
                            xChar = xChar.ToLower();
                        }
                        mScanData.Append(xChar);
                    }
                }
                else
                {
                    if (mLeftCtrlDown && e.KeyCode == Keys.B)
                    {
                        mScanning = true;
                        mScanData.Clear();
                        mScanShiftDown = false;
                        e.Handled = true;
                    }
                }
            }
            listBox1.Items.Add("Down: " + e.KeyCode.ToString());
        }