我正在开发一个对话框来配置DataGridView的外观。一切都很好,直到DataGridView应该重绘,因为它的字体已经改变。所有DataGridViews都有一个基类,它会覆盖Font的getter以获取所选的Font。
我正在尝试更新我的DGV:
public static void RefreshAllConfigurationForms(Control parent)
{
var controls = parent.GetChildControls(typeof(ConfigurableDataGridView));
if (controls != null)
{
foreach (var configurableControl in controls)
{
configurableControl.Refresh();
}
}
}
调试时 configurableControl.Refresh(); DGV的字体设置正确,但它没有直观更新。实际上我注意到InheritedEditingCellStyle的Font仍然是旧的。
Font是在DataGridView的派生中设置的:
public class ConfigurableDataGridView : DataGridView
{
public override System.Drawing.Font Font
{
get
{
return AppearanceConfiguration.Font;
}
}
}
那么有没有办法强制重绘“更多”?
更多信息: DataGridView是TabControl的一部分。打开新选项卡时,字体会正确呈现,但在更改字体时,DGV不会更新。
答案 0 :(得分:1)
不知何故,我的DataGridView的父窗体阻止它更新其视觉效果。因此,当在该(嵌入)表单上调用Refresh时,DataGridView会按预期更新。
答案 1 :(得分:0)
您是否尝试过调用MyForm.Paint()
?我相信这应该重绘所有子项以及表单本身。