控件逻辑