Как остановить настраиваемые элементы управления toolstrip в C# с фокусировкой?
У меня есть два пользовательских элемента управления полосы инструментов, чтобы дать мне NumericUpDown и TrackBar. Они используются для контроля и отображения размеров кисти в приложении для рисования. Тем не мение. Когда пользователь щелкает любой из них, фокус на окне рисования, которое является дочерним окном MDI, теряется. Я бы подумал, что элемент управления toolstrip родительской формы не будет фокусироваться на ребенке? Это верно для стандартных элементов управления полосы инструментов (кнопка, метка и т. Д.).
Вот код для обоих элементов управления:
NumericUpDown
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[
ToolStripItemDesignerAvailability
(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.StatusStrip)
]
public class ToolStripNumericUpDownItem : ToolStripControlHost
{
public NumericUpDown numericUpDown;
public ToolStripNumericUpDownItem()
: base(new NumericUpDown())
{
numericUpDown = (NumericUpDown)this.Control;
numericUpDown.AutoSize = false;
numericUpDown.Maximum = 1000;
numericUpDown.Size = new Size(30, 20);
}
}
TrackBar
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[
ToolStripItemDesignerAvailability
(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.StatusStrip)
]
public class ToolStripTrackBarItem : ToolStripControlHost
{
public TrackBar trackBar;
public ToolStripTrackBarItem()
: base(new TrackBar())
{
trackBar = (TrackBar)this.Control;
trackBar.AutoSize = false;
trackBar.Maximum = 100;
trackBar.Size = new Size(200, 20);
trackBar.TickFrequency = 1;
trackBar.TickStyle = TickStyle.None;
}
}