Link to home
Start Free TrialLog in
Avatar of deleyd
deleydFlag for United States of America

asked on

CTRL-A select all text in textBox

OK I would like CTRL-A (on keyboard) to select all the text in my textBox1. Right now CTRL-A does nothing, even though my cursor is in the textBox1.
Avatar of Paul MacDonald
Paul MacDonald
Flag of United States of America image

Is the text selectable?  CTRL-A should work by default, I believe...
SOLUTION
Avatar of Rikin Shah
Rikin Shah
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Are you doing any key press filtering? Barring that, I'd have to agree with paulmacd.
Avatar of deleyd

ASKER

OK I'll have a look at the textBox parameters. Maybe there's a setting somewhere I need to set from False to True.
On further inspection, maybe it doesn't. I created a quick project, and it seems the key combination does not work as one would expect--though copy and paste key combinations did. It seems you may need rikin_shah's logic after all.
Avatar of deleyd

ASKER

Hmm, I don't see anything. I see AcceptsReturn and AcceptsTab. Nothing about selectable.
set the form's keypreview to true and handle the keyup event of the form. In there, check for the CTRL-A combination and also whether the textbox is currently selected then simply do copy textbox.text to clipboard
You shouldn't need KeyPreview for this task. KeyPreview is for the form to have a peek at (and possibly handle/suppress) the key being pressed before the control which is to process the key press receives the actual message stating a key was pressed.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of deleyd

ASKER

Hmm, very strange it works for Idle_Mind. I have VS2010 on Vista. CTRL-A works for other programs.

Here's my Form1.Designer.cs stripped down:
  partial class Form1
  {
    private System.ComponentModel.IContainer components = null;

    protected override void Dispose(bool disposing)
    {
      if (disposing && (components != null))
      {
        components.Dispose();
      }
      base.Dispose(disposing);
    }

    #region Windows Form Designer generated code

    private void InitializeComponent()
    {
      this.textBox1 = new System.Windows.Forms.TextBox();
      this.textBox2 = new System.Windows.Forms.TextBox();
      this.SuspendLayout();
      //
      // textBox1
      //
      this.textBox1.Font = new System.Drawing.Font("Times New Roman", 26.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.textBox1.Location = new System.Drawing.Point(9, 12);
      this.textBox1.Multiline = true;
      this.textBox1.Name = "textBox1";
      this.textBox1.Size = new System.Drawing.Size(669, 52);
      this.textBox1.TabIndex = 48;
      //
      // textBox2
      //
      this.textBox2.AcceptsReturn = true;
      this.textBox2.AcceptsTab = true;
      this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
      this.textBox2.Location = new System.Drawing.Point(12, 92);
      this.textBox2.Multiline = true;
      this.textBox2.Name = "textBox2";
      this.textBox2.Size = new System.Drawing.Size(666, 50);
      this.textBox2.TabIndex = 51;
      //
      // Form1
      //
      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
      this.ClientSize = new System.Drawing.Size(703, 338);
      this.Controls.Add(this.textBox2);
      this.Controls.Add(this.textBox1);
      this.Name = "Form1";
      this.Text = "Form1";
      this.ResumeLayout(false);
      this.PerformLayout();

    }

    #endregion

    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.TextBox textBox2;
  }
}

Open in new window

Ctrl-A works for me:  VS2010 on Win 7.
My test was in XP, VS 2008. I didn't investigate too deeply, but the test was just a form with a TextBox--no logic.
I didn't delve too deeply either; just a form with two textboxes and a button (no code).  It's possible that placing a different type of control on the form could be causing this issue.
Avatar of deleyd

ASKER

OK I tested and found if I make a test form with two textBoxes, and both textBoxes are Multiline text boxes, then CTRL-A doesn't work for either textbox. I wonder why that is?
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of deleyd

ASKER

OK I worked around it for now using your ideas thank you for the help.