Невозможно использовать мышь для выделения текста текстового поля, когда текстовое поле встроено в SplitContainer - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть форма, содержащая splitContainer.На Panel2 контейнера splitContainer я добавил еще одну форму, которая называется form2.В форме 2 у меня есть текстовое поле.

Я могу редактировать текстовое поле, я имею в виду, я могу ввести текстовое поле.Однако я не могу выделить текст в текстовом поле с помощью мыши.Вот мой код.

private void InitializeComponent()
        {
            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.form2 = new TestTextBox.Form2();
            this.splitContainer1.Panel1.SuspendLayout();
            this.splitContainer1.Panel2.SuspendLayout();
            this.splitContainer1.SuspendLayout();
            this.SuspendLayout();
            // 
            // splitContainer1
            // 
            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
            this.splitContainer1.Name = "splitContainer1";
            // 
            // splitContainer1.Panel1
            // 
            this.splitContainer1.Panel1.Controls.Add(this.textBox1);
            // 
            // splitContainer1.Panel2
            // 
            this.form2.TopLevel = false;
            this.splitContainer1.Panel2.Controls.Add(this.form2);
            this.splitContainer1.Size = new System.Drawing.Size(812, 347);
            this.splitContainer1.SplitterDistance = 438;
            this.splitContainer1.TabIndex = 0;
            // 
            // textBox1
            // 
            this.textBox1.Location = new System.Drawing.Point(94, 110);
            this.textBox1.Name = "textBox1";
            this.textBox1.Size = new System.Drawing.Size(213, 20);
            this.textBox1.TabIndex = 0;
            // 
            // form2
            // 
            this.form2.ClientSize = new System.Drawing.Size(362, 313);
            this.form2.Dock = System.Windows.Forms.DockStyle.Fill;
            this.form2.Location = new System.Drawing.Point(0, 0);
            this.form2.Name = "form2";
            this.form2.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            this.form2.Text = "Form2";
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(812, 347);
            this.Controls.Add(this.splitContainer1);
            this.Name = "Form1";
            this.Text = "Form1";
            this.splitContainer1.Panel1.ResumeLayout(false);
            this.splitContainer1.Panel1.PerformLayout();
            this.splitContainer1.Panel2.ResumeLayout(false);
            this.splitContainer1.ResumeLayout(false);
            this.ResumeLayout(false);
        }

form2 имеет текстовое поле.и я не могу выделить текст этого текстового поля с помощью мыши.Любой, кто знает эту проблему, пожалуйста, помогите мне!

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Если вам по какой-то причине приходится придерживаться формы внутри панели, попробуйте установить для форм .toplevel значение false, это что-то меняет?

Если вам действительно не нужно использовать форму, вместо этого преобразуйте форму в usercontrol и добавьте usercontrol на панель.

У вас будут проблемы с фокусировкой при использовании форм таким способом. Я не думаю, что вы даже получите Form.Focus () и, возможно, некоторые другие события таким образом ...

Может быть, вам поможет пример здесь, прокрутите вниз до: Добавить формы в качестве пользовательских элементов управления

1 голос
/ 28 февраля 2012

На Panel2 splitContainer я добавил еще одну форму

Это не тот способ, которым предполагается использовать разделенный контейнер.Вы можете добавить panel к panel2, а не Form!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...