Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Windows Forms / WinForm General / May 2008

Tip: Looking for answers? Try searching our database.

Key Handling Problem

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Anthony Peterson - 09 May 2008 15:32 GMT
I have written an MDI windows application that handles key presses to
do things like make text bold, and in a previous  version successfully
used cut, copy and paste with a RichTextBox. However, at some point in
time, just the Cut, Copy and Paste stopped working. I was trying to
set it up so I could implement the same operations in the datagrid
that is also on my child form page. Originally I thought I had just
failed to correctly implement key handling for a Datagrid but as it
turned out, my rich text box also no can not process cut, copy and
paste.

After trying some things, I've learned:

Cntrl-A works in my datagrid and my text box just fine. But I think in
the Datagrid it uses default behavior.

Cntrl-B, I and U work in my textbox using my key handler event
routines.

Cntrl-C, X and V do not work at all now.

I'm using a boolean in my child form class to print Cntrl-I from
acting like a tab, but also allow normal tab to work. So that too
effects my handlers.

I also have small helper methods that actually implement the bold,
ital, underline and the copying, cutting, pasting. I've verified
through debugging that the code path never even gets to the copy/cut/
paste methods..

My key handling code:

       internal void Entry_KeyDown(object sender, KeyEventArgs e)
       {
           if (e.Control)
           {
               notes.HandleControlCodes(e, this);
               TabEnabled = false;
           }
       }

       private void Entry_KeyUp(object sender, KeyEventArgs e)
       {
           if (e.Control)
               TabEnabled = true;
       }

       // Tab, Cntrl-I workaround
       private void richTextBox1_KeyPress(object sender,
KeyPressEventArgs e)
       {
           if (TabEnabled)
               return;

           if (e.KeyChar == ((char)9))
               e.Handled = true;
       }

       // In my notes class (which handles the richtextbox)
       public void HandleControlCodes(KeyEventArgs e, Entry en)
       {
           if (e.KeyCode == Keys.A)
               box.SelectAll();
           else if (e.KeyCode == Keys.C)
               box.Copy();
           else if (e.KeyCode == Keys.X)
               box.Cut();
           else if (e.KeyCode == Keys.V)
               box.Paste();
           else if (e.KeyCode == Keys.B || e.KeyCode == Keys.I ||
e.KeyCode == Keys.U)
               UpdateFontStyle(e.KeyCode == Keys.B, e.KeyCode ==
Keys.I, e.KeyCode == Keys.U);
           else if (e.KeyCode == Keys.S)
               en.saveToolStripMenuItem_Click(null, null);
       }

I could use any insight, as I've tried to walk through and debug this,
but it is hard since I need to test the debugging response to Cntr-C,
X,V but I can't hold control down while tracing through the first
handling pass that occurs when I press just control. So I have only
been able to set a checkpoint on points like box.Copy that never got
reached.
Anthony Peterson - 12 May 2008 20:17 GMT
> I have written an MDI windows application that handles key presses to
> do things like make text bold, and in a previous  version successfully
[quoted text clipped - 3 lines]
> that is also on my child form page. Originally I thought I had just
> failed to correctly implement key handling for a Datagrid but as its

I have found the solution, but wanted to post it, in case someone else
runs into this. The problem was created by the default behavior of
Visual Studio's MDI Parent template which can be accessed in the
Create New Item. There's nothing wrong with the template, but in my
case, the application I have been working on made an abrupt transition
from SDI to MDI. Previous to this change, cut copy and paste worked,
because the menu items for them had been manually created and I did
not add in shortcut keys immediately, but implemented them through my
key handler instead. My current child form was once a SDI form with a
menubar and all, and when I made it a child I made QCMaster, by the
MDI Parent template, which added shortcut keys to the menu items for
cut, copy, paste. I assumed, when I looked at them before, that they
would feed into my menu item click commands, but it seems somehow that
didn't happen, and the control-C, X and V were processed by the menu
items and never reached my key handler. I implemented handlers for the
cut, et all Tooltip items, but I forgot the menu items and as a result
nothing happened when I entered the shortcuts. I have removed the
shortcut keys from those three and functioning returned to normal.

Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.