ErrorProvider не отображает сообщение об ошибке

  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();
    }
    

person Yituo    schedule 06.10.2018    source источник
comment
Насколько мне известно, он не будет отображать сообщение об ошибке, но когда вы наведете курсор на значок ошибки, он отобразит это сообщение об ошибке в виде всплывающей подсказки.   -  person dotnetstep    schedule 06.10.2018
comment
Теперь это имеет смысл. Спасибо !   -  person Yituo    schedule 06.10.2018


Ответы (1)


Позвольте мне объяснить об ErrorProvider.

  1. ErrorProvider в приложении Windows ведет себя следующим образом.

    • It will display error icon as per configuration.
    • Он отобразит сообщение об ошибке, которое вы установили, как только вы наведете на него курсор мыши.
  2. Поведение, которое вы хотите, - это слишком отображать сообщение об ошибке вместе со значком.

    • There is one solution build your own control just like ErrorProvider.
person dotnetstep    schedule 06.10.2018