You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ComboBox扩展类代码报错:“expect {”问题求助

问题排查:自定义ComboBoxEx控件的“expect {”错误

错误原因

你的代码中Dispose(bool disposing)方法的声明与代码块之间存在多余的空行和无效缩进,导致编译器无法识别方法体的起始位置,触发“expect {”语法错误。

修正后的完整代码

[DesignerCategory("Code")]
public class ComboBoxEx : ComboBox
{
    private readonly ToolTip ttp;

    public ComboBoxEx() : base() => ttp = new ToolTip();

    private bool _showItemToolTip = true;
    [DefaultValue(true)]
    public bool ShowItemToolTip
    {
        get => _showItemToolTip;
        set
        {
            if (_showItemToolTip != value)
            {
                _showItemToolTip = value;
                ttp.SetToolTip(this, string.Empty);  
            }
        }
    }

    protected override void OnSelectedIndexChanged(EventArgs e)
    {
        base.OnSelectedIndexChanged(e);

        if (ShowItemToolTip)
        {
            string str = string.Empty;

            if (SelectedIndex >= 0)
            {
                var sz = TextRenderer.MeasureText(Text, Font);

                if (sz.Width > Width - SystemInformation.VerticalScrollBarWidth)
                    str = Text;
            }

            ttp.SetToolTip(this, str);
        }
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing) ttp.Dispose();
        base.Dispose(disposing);
    }
}

关键修正点

  • 移除Dispose(bool disposing)方法声明后多余的空行和无效空格,确保方法声明后直接紧跟{,保持语法结构连贯。
  • 统一所有方法的缩进(比如修正了OnSelectedIndexChanged方法之前缺失的正确缩进),让代码结构更规范。

内容的提问来源于stack exchange,提问作者Delitur Per

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:06:28