2016-04-22 9 views
0

Validatingイベントを使用して、テキストエディットタイプのテキストフィールドの入力を検証しています。しかし、エラーアイコンはテキストフィールドの外に表示されています(最初の写真)。エラーテキストボックス内に表示されるアイコン

私はErrorIconAlignmentを試しましたが、動作しません。アイコンはまだテキストの外側に表示されています。テキストフィールドに他の方法を表示させる方法はありますか?

enter image description here

感謝。

答えて

1

それを可能にするプロパティはありません。

いますが、次のコードでこれを行うことができます: 私は2つのボタンを作成し、設定エラーの1 setErrorButtonSetError方法との明確なエラーのための第二ボタン、不要な方法CreatePictureEdit

private void setErrorButton_Click(object sender, EventArgs e) 
{ 
    SetError(textEdit1, "Error1"); 
    textEdit1.Properties.MaskBoxPadding = new Padding(12, 0, 0, 0); //to put the cursor after the error image 
} 

private void clearErrorButto_Click(object sender, EventArgs e) 
{ 
    SetError(textEdit1, ""); 
    textEdit1.Properties.MaskBoxPadding = new Padding(0, 0, 0, 0); 
} 

public static void SetError(Control ctrl, string errorText) 
{ 
    Form f = ctrl.FindForm(); 
    if (errorText == string.Empty) 
    { 
     if (ctrl.Tag != null && ctrl.Tag is PictureEdit) 
     { 
      f.Controls.Remove(ctrl.Tag as PictureEdit); 
      return; 
     } 
     else 
      return; 
    } 
    PictureEdit edit = CreatePictureEdit(ctrl, errorText); 
    f.Controls.Add(edit); 
    ctrl.Tag = edit; 
    edit.BringToFront(); 

} 

private static PictureEdit CreatePictureEdit(Control ctrl, string errorText) 
{ 
    PictureEdit edit = new PictureEdit(); 
    Image image = BaseEdit.DefaultErrorIcon; 
    edit.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; 
    edit.BackColor = Color.Transparent; 
    edit.Image = image; 
    edit.ToolTip = errorText; 
    edit.ToolTipIconType = DevExpress.Utils.ToolTipIconType.Error; 
    edit.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Squeeze; 
    edit.Location = new Point(ctrl.Bounds.Left + 3, ctrl.Bounds.Y + 1); 
    edit.Size = new Size(image.Width, ctrl.Bounds.Height - 2); 
    edit.BackColor = Color.White; 
    return edit; 
} 

あなたが変更することができますTextEdit

でアイコンの位置が正しく調整されていない場合は、画像の位置プロパティ値とサイズ
関連する問題