I는 사용자의 문화를 설정하는 콤보 박스가 호출되는 x 회. FormClosing 이벤트가 여러 번
이
내 FormClosing 이벤트입니다 :private void FrmParent_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show(this, Properties.Resources.msgExit, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
e.Cancel = true;
}
이 내 콤보 상자 값이 이벤트 변경 :
void cbCulture_ToolValueChanged(object sender, ToolEventArgs e)
{
ComboBoxTool cbCulture = (ComboBoxTool)sender;
var culture = cbCulture.Value.ToString();
FormHelpers.SetCulture(culture);
this.Controls.Clear();
this.InitializeComponent();
InitForm();
}
내가 청소하고 새로 UI를 변경하는 컨트롤을 초기화해야 문화하지만 그렇게함으로써 내가 InitializeComponent()에 여러 번 FormClosing 이벤트를 할당 오전? 이 문제를 어떻게 피할 수 있습니까?
그 때문에 InitializeComponent 때문에 이벤트가 추가되었습니다. –
확실히, 이벤트에 대한 여러 구독. 컨트롤 컬렉션을 지우고 initializecomponent를 호출해야 할 필요가 있습니까? 'InitForm'의 배정을 통해 문화권 고유의 속성 (텍스트, 왼쪽에서 오른쪽, 무엇이든간에)을 컨트롤 레이아웃에 그대로 지정하는 것으로 충분합니까? – dlatikay
각 문화권 변경에서'InitializeComponent()'를 호출하지 않습니까? – Pikoh