Tôi có một ứng dụng winforms mà người dùng phải có khả năng thay đổi ngôn ngữ khi chạy.Làm cách nào để thay đổi ngôn ngữ khi chạy mà không gặp khó khăn về bố cục
Để khái quát công tắc và tránh phải tên kiểm soát cứng mã tôi đã cố gắng mở rộng sau:
internal static void SetLanguage(this Form form, CultureInfo lang)
{
ComponentResourceManager resources = new ComponentResourceManager(form.GetType());
ApplyResourceToControl(resources, form, lang);
resources.ApplyResources(form, "$this", lang);
}
private static void ApplyResourceToControl(ComponentResourceManager resources, Control control, CultureInfo lang)
{
foreach (Control c in control.Controls)
{
ApplyResourceToControl(resources, c, lang);
resources.ApplyResources(c, c.Name, lang);
}
}
này thay đổi tất cả các chuỗi.
Tuy nhiên, tác dụng phụ của việc này là toàn bộ nội dung của cửa sổ được thay đổi kích thước thành kích thước khởi động ban đầu của cửa sổ đó, bất kể kích thước hiện tại là bao nhiêu.
Làm cách nào để ngăn bố cục thay đổi hoặc bắt đầu tính toán bố cục mới?
Tôi ước tôi có thể bỏ phiếu cho bạn nhiều hơn sau đó một lần rất hữu ích! – Bosak