仅检测控制高度的变化

时间:2017-08-04 16:49:02

标签: c# winforms

有没有办法检测何时只更改控件的高度而不使用变量来保存以前的控制高度?我有代码,我只想在控件的高度发生变化时执行,但即使宽度发生变化也会触发SizeChanged事件。

1 个答案:

答案 0 :(得分:1)

  

不使用变量来保存以前的控制高度?

您可以使用单个变量,只需使用字典即可​​。试试这个例子:

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
        }
    }
}