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
相关产品推荐
相关产品推荐

