- Общие свойства
- Резюме примера
- Как динамически создать элемент управления Button.
Чтобы динамически создать элемент управления, сначала создайте объект класса элемента управления, а затем используйте метод Add системного объекта Controls, чтобы зарегистрировать элемент управления в форме. пример:
private void Form1_MouseDown(object sender,MouseEventArgs e)
{
Button btn=new Button();
btn.Left=e.X;
btn.Top=e.Y;
btn.Name="Кнопка"+intCount.ToString();
btn.Text="Кнопка:+intCount.ToString();
this.Controls.Add(btn);
intCount++;
}
- Реализовать перерисовку кнопки Button
Создайте новый пользовательский элемент управления и назовите его ControlButton. Затем измените наследование на кнопку
public partial class ControlButton : Button
{
public ControlButton()
{
this.SetStyle(
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw |
ControlStyles.SupportsTransparentBackColor, true);
FlatStyle = FlatStyle.Flat;
FlatAppearance.BorderSize = 1;
FlatAppearance.BorderColor = Color.FromArgb(102, 102, 102);
FlatAppearance.MouseOverBackColor = Color.FromArgb(102, 102, 102);
FlatAppearance.MouseDownBackColor = Color.FromArgb(150, 150, 150);
}
private bool _isClicked = false;
public bool IsClicked
{
get { return _isClicked; }
set { _isClicked = value; }
}
private bool _inClient = false;
private bool _mouseDown = false;
private bool _enableClicked = false;
[Категория («пользовательский атрибут»), Описание («включить нажатое состояние»)]
public bool EnableClicked
{
get { return _enableClicked; }
set { _enableClicked = value; }
}
private Color _fontColor = Color.Gainsboro;
[Категория("пользовательский атрибут"), Описание("цвет шрифта в нажатом состоянии")]
public Color ClickedForeColor
{
get { return _fontColor; }
set { _fontColor = value; }
}
private Size _imgSize;
[Категория ("пользовательский атрибут"), Описание ("размер изображения")]
public Size ImageSize
{
get { return _imgSize; }
set
{
_imgSize = value;
Invalidate();
}
}
private Image _enterImage = null;
[Категория("пользовательский атрибут"), Описание("изображение при наведении курсора мыши")]
public Image EnterImage
{
get { return _enterImage; }
set
{
_enterImage = value;
}
}
private Image _downImage = null;
[Категория("пользовательский атрибут"), Описание("картинка при нажатии мыши")]
public Image DownImage
{
get { return _downImage; }
set { _downImage = value; }
}
protected override void OnMouseDown(MouseEventArgs mevent)
{
IsClicked = !IsClicked;
_mouseDown = true;
base.OnMouseDown(mevent);
}
protected override void OnMouseUp(MouseEventArgs mevent)
{
_mouseDown = false;
base.OnMouseUp(mevent);
}
protected override void OnMouseEnter(EventArgs e)
{
_inClient = true;
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(EventArgs e)
{
_inClient = false;
base.OnMouseLeave(e);
}
}
После того, как поколение успешно, вы можете увидеть его на панели инструментов.
Ссылка на код:blog.CSDN.net/QQ_33324878…