C# 应用资源文件后,如何更改控件的属性?

C# 应用资源文件后,如何更改控件的属性?,c#,.net,visual-studio,C#,.net,Visual Studio,当用户将字体大小更改为125%或150%时,我需要为组件添加一个滚动条。为此,我在组件中添加了一个方法,该方法将AutoScroll属性设置为true protected override void OnSizeChanged(EventArgs e) { if (SystemFonts.DefaultFont.Size < 8) { this.AutoScroll = true; } if (this.Handle != null)

当用户将字体大小更改为125%或150%时,我需要为组件添加一个滚动条。为此,我在组件中添加了一个方法,该方法将AutoScroll属性设置为true

protected override void OnSizeChanged(EventArgs e)
{
    if (SystemFonts.DefaultFont.Size < 8)
    {
        this.AutoScroll = true;
    }
    if (this.Handle != null)
    {
        this.BeginInvoke((MethodInvoker) delegate
        {
            base.OnSizeChanged(e);
        });
    }
}
添加到控件时将触发该方法,然后应用资源。我不想更改的组件属于上述代码中的
ucasnsSearchCriteria


现在,我想在应用资源后,将“ucasnsSearchCriteria”的
AutoScroll
属性设置为false。我对c#ui控件的呈现过程知之甚少。应用后是否可以动态更改属性?

我将创建所需类型的派生控件,并添加一个属性
AllowAutoScroll
或任何类似的默认值
true

这样,您可以在WinForms designer中轻松更改该属性,并在大小更改时对该属性作出反应

因此,如果您将这一行代码更改为非默认(
false
),设计器将为您添加这一行代码:

。。。您可以对新属性做出如下反应:

this.ultraExpandableGroupBoxPanel1.Controls.Add(this.pnlViewMode);
this.ultraExpandableGroupBoxPanel1.Controls.Add(this.ucASNSearchCriteria);
resources.ApplyResources(this.ultraExpandableGroupBoxPanel1, "ultraExpandableGroupBoxPanel1");
this.ultraExpandableGroupBoxPanel1.Name = "ultraExpandableGroupBoxPanel1";
protected override void OnSizeChanged(EventArgs e)
{
    if (AllowAutoScroll)
    {
        if (SystemFonts.DefaultFont.Size < 8)
        {
            this.AutoScroll = true;
        }
        if (this.Handle != null)
        {
            this.BeginInvoke((MethodInvoker) delegate
            {
                base.OnSizeChanged(e);
            });
        }
    }
}
在SizeChanged上受保护的覆盖无效(EventArgs e)
{
如果(允许自动滚动)
{
如果(SystemFonts.DefaultFont.Size<8)
{
this.AutoScroll=true;
}
if(this.Handle!=null)
{
此.BeginInvoke((MethodInvoker)委托
{
基地.OnSizeChanged(e);
});
}
}
}

您不能只执行UCASNSSearchCriteria.AutoScroll=false;顺便说一句,你不必每次都写“这个”。很抱歉,最近没有登录,谢谢你的帮助!
protected override void OnSizeChanged(EventArgs e)
{
    if (AllowAutoScroll)
    {
        if (SystemFonts.DefaultFont.Size < 8)
        {
            this.AutoScroll = true;
        }
        if (this.Handle != null)
        {
            this.BeginInvoke((MethodInvoker) delegate
            {
                base.OnSizeChanged(e);
            });
        }
    }
}