Solved

Opening a new form

Posted on 2009-05-04
7
318 Views
Last Modified: 2012-05-06
Hello,

I have one application that works okay.  I'm trying to integrate an on screen keyboard into it.  I tested the demo project and as a standlone it works fine.

I've added it into my project and created the following code to view the form:

        private void button1_Click(object sender, EventArgs e)
        {
            frmKeyboard frmKeyboard = new frmKeyboard();
            frmKeyboard.Show();
        }

It compiles but then just crashes when I click on the onscreenkeyboard.  The demo project I'm using can be found here:

http://www.codeproject.com/KB/miscctrl/touchscreenkeyboard.aspx?fid=285587&fr=26#xx0xx

Here is the code behind frmKeyboard.cs

Any suggestions as to what I might be doing wrong - I'm guesing the passing of data between forms is going wrong somewhere?

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;
 

namespace keyFortress

{

    public partial class frmKeyboard : Form

    {

        public frmKeyboard()

        {

            InitializeComponent();

        }
 

        private void button1_Click(object sender, EventArgs e)

        {

            keyboardcontrol1.KeyboardType = KeyboardClassLibrary.BoW.Standard;

        }

        private void button2_Click(object sender, EventArgs e)

        {

            keyboardcontrol1.KeyboardType = KeyboardClassLibrary.BoW.Alphabetical;

        }
 

        private void button3_Click(object sender, EventArgs e)

        {

            keyboardcontrol1.KeyboardType = KeyboardClassLibrary.BoW.Kids;

        }
 

        private void keyboardcontrol1_UserKeyPressed(object sender, KeyboardClassLibrary.KeyboardEventArgs e)

        {

            richTextBox1.Focus();

            SendKeys.Send(e.KeyboardKeyPressed);

        }
 

        private void keyboardcontrol1_Load(object sender, EventArgs e)

        {
 

        }

    }

}

Open in new window

0
Comment
Question by:andyw27
  • 5
  • 2
7 Comments
 
LVL 6

Expert Comment

by:Cebik
ID: 24293782
try:
frmKeyboard.ShowDialog();

please paste your exception
0
 

Author Comment

by:andyw27
ID: 24293804
This is giving the folloing error:
Error      1      An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Form.ShowDialog()'
0
 
LVL 6

Accepted Solution

by:
Cebik earned 500 total points
ID: 24293825
do you have this?

give me your exception with methode Show();

private void button1_Click(object sender, EventArgs e)

{

    frmKeyboard frmKeyboard = new frmKeyboard();

    frmKeyboard.ShowDialog();

}

Open in new window

0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

Author Comment

by:andyw27
ID: 24294272
Ah that was it, I was missing the first line.

Now the keyboard displays.

At the moment the letters appear within a richtextbox on frmKeyboard.  How can I change this so that letters appear within a control on frmMain?

Thanks.
0
 
LVL 6

Expert Comment

by:Cebik
ID: 24294319
i'm shure that there is better idea but you can do this:
but ShowDialog means that your main form is waiting for ending frmKeybord..
so make this:
 frmKeyboard frmKeyboard = new frmKeyboard();

as field in your frmMain class..
and in button_click
make only frmKeyboard.Show();

frmKeyboard frmKeyboard = new frmKeyboard();

frmKeyboard.TopMost = false;

frmKeyboard.Parent = yourPanelControl;

frmKeyboard.Show();

Open in new window

0
 
LVL 6

Expert Comment

by:Cebik
ID: 24294338

frmKeyboard fk = new frmKeyboard();

private void button1_Click(object sender, EventArgs e)

{

    fk.Parent = yourPanel; //Control

    fk.Show();

}

Open in new window

0
 
LVL 6

Expert Comment

by:Cebik
ID: 24294341
ups :)

frmKeyboard fk = new frmKeyboard();

private void button1_Click(object sender, EventArgs e)

{

    fk.TopMost = false;

    fk.Parent = yourPanel; //Control

    fk.Show();

}

Open in new window

0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

This article describes a simple method to resize a control at runtime.  It includes ready-to-use source code and a complete sample demonstration application.  We'll also talk about C# Extension Methods. Introduction In one of my applications…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This video discusses moving either the default database or any database to a new volume.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now