关于get与set方法
- 即使使用get、set获得属性的方法,如果不将类中的字段序列化,外界依旧不能获得该字段的值。
如:
//设置类对象
public HTuple modelID
{ get; set; }
//modelID变量若想得到类中的字段值,只能先将类中的字段序列化,再反序列化,方可得到该值
modelID = templateMatch.modelID;
//序列化和反序列化可直接得到字段的值,可以通过不增加get和set方法获得字段的值,即:
//设置类对象
public HTuple modelID
//1.先序列化
templateMatch.modelID = modelID;
//2.再反序列化
modelID = templateMatch.modelID;
动态添加自定义控件
https://blog.csdn.net/m0_43398336/article/details/102789775?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3-102789775-blog-120318546.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3-102789775-blog-120318546.pc_relevant_default&utm_relevant_index=6
public List<Button> _button = new List<Button>();
private void button2_Click(object sender, EventArgs e)
{
Button button = new Button();
_button.Add(button);
button.Text = "按钮控件"+ _button.Count;
refreshwindow();
}
private void refreshwindow()
{
System.Drawing.Point point = new System.Drawing.Point();
panel1.Controls.Clear();
for (int i = 0; i < _button.Count; i++)
{
point.Y = _button[i].Height * i;
_button[i].Location = point;
panel1.Controls.Add(_button[i]);
}
}
鼠标拖动控件移动
#region COMMON_MOUSE_EVENT
private System.Drawing.Point mouse_offset;
private System.Drawing.Point original_pos;
private void Common_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
System.Drawing.Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);
//检查是否超出背景图片边界,超出则位置不变;在图片范围内,则控件位置改变。
if (((Control)sender).Parent.PointToClient(mousePos).X >= 0 && (((Control)sender).Parent.PointToClient(mousePos).X <= ((Control)sender).Parent.Size.Width)
&& (((Control)sender).Parent.PointToClient(mousePos).Y >= 0 && ((Control)sender).Parent.PointToClient(mousePos).Y <= ((Control)sender).Parent.Size.Height))
{
((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos);
//MessageBox.Show(((Control)sender).Location.ToString());
}
else
{
((Control)sender).Location = original_pos;
}
}
}
private void Common_MouseDown(object sender, MouseEventArgs e)
{
mouse_offset = new System.Drawing.Point(-e.X, -e.Y);
original_pos = ((Control)sender).Location;
}
private void Common_MouseMove(object sender, MouseEventArgs e)
{
((Control)sender).Cursor = Cursors.Arrow;
if (e.Button == MouseButtons.Left)
{
System.Drawing.Point mousePos = Control.MousePosition;
mousePos.Offset(mouse_offset.X, mouse_offset.Y);
((Control)sender).Location = ((Control)sender).Parent.PointToClient(mousePos);
}
}
#endregion
private void Form1_Load(object sender, EventArgs e)
{
button2.MouseMove += new System.Windows.Forms.MouseEventHandler(Common_MouseMove);
button2.MouseDown += new System.Windows.Forms.MouseEventHandler(Common_MouseDown);
button2.MouseUp += new System.Windows.Forms.MouseEventHandler(Common_MouseUp);
}