仅检测控制高度的变化
问题描述:
有没有办法检测何时只有控制器的高度发生变化而不使用变量来保存先前的控制高度?我有我想要执行的代码,只有当控件的高度改变了,但即使改变了宽度时也会触发SizeChanged事件。仅检测控制高度的变化
答
没有使用变量来保存以前的控制高度?
您可以使用单个变量,只需使用字典即可。试试这个例子:
public partial class Form1 : Form
{
private Dictionary<Control, int> heights = new Dictionary<Control, int>();
public Form1()
{
InitializeComponent();
foreach (Control control in Controls)
{
heights.Add(control, control.Height);
}
}
private void button1_Resize(object sender, System.EventArgs e)
{
var control = (Control) sender;
var oldHeight = heights[control];
if (control.Height != oldHeight)
{
heights[control] = control.Height;
// handle your resize
}
}
}
你不喜欢缓存旧的身高值? –
像使用变量来存储以前的高度? –