• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 330
  • Last Modified:

Opening a new form

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
andyw27
Asked:
andyw27
  • 5
  • 2
1 Solution
 
CebikCommented:
try:
frmKeyboard.ShowDialog();

please paste your exception
0
 
andyw27Author Commented:
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
 
CebikCommented:
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
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
andyw27Author Commented:
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
 
CebikCommented:
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
 
CebikCommented:

frmKeyboard fk = new frmKeyboard();
private void button1_Click(object sender, EventArgs e)
{
    fk.Parent = yourPanel; //Control
    fk.Show();
}

Open in new window

0
 
CebikCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now