ErrorProvider 不显示错误信息

ErrorProvider does not display error message

  1. 在下面的代码中我使用了errorProvider.SetError(control, message)来显示消息,但是只显示了Icon,没有显示消息,有什么问题吗?
  2. 有没有办法只调整错误信息的左边距? (我知道你可以 SetIconPadding,但我只想更改左边距)

    public static DialogResult ShowDialog()
    {
      var inputBox = new Form { ClientSize = new Size(520, 225), FormBorderStyle = FormBorderStyle.FixedDialog };        
      var panel = new TableLayoutPanel { Size = new Size(460, 100), Location = new System.Drawing.Point(45, 15) };        
      var errorProvider = new ErrorProvider { Icon = SystemIcons.Exclamation, BlinkStyle = ErrorBlinkStyle.NeverBlink };        
      errorProvider.SetIconAlignment(panel, ErrorIconAlignment.BottomLeft);
    
      var okButton = new Button
      {
        Size = new System.Drawing.Size(70, 30),
        Location = new Point(330, 180),
        Text = "OK"
      };
    
      okButton.Click += new EventHandler((sender, e) => { errorProvider.SetError(panel, "Test Error"); });
      inputBox.Controls.Add(panel);
      inputBox.Controls.Add(okButton);
    
      return inputBox.ShowDialog();
    }
    

让我解释一下 ErrorProvider。

  1. Windows 应用程序中的 ErrorProvider 具有以下行为。

    • 它将根据配置显示错误图标。
    • 将鼠标光标放在上面时,它会显示您设置的错误消息。
  2. 您想要的行为是连同图标一起显示错误消息。

    • 有一种解决方案可以像 ErrorProvider 一样构建您自己的控件。