BaseEdit.CustomDisplayText Event
Enables custom display text to be provided for an editor.
Namespace: DevExpress.XtraEditors
Assembly: DevExpress.XtraEditors.v19.1.dll
Declaration
Event Data
The CustomDisplayText event's data class is CustomDisplayTextEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
DisplayText | Gets or sets an editor’s display text. |
Value | Gets an editor’s current value. |
Remarks
The CustomDisplayText event can be used to provide custom display text for an editor. To provide custom text, assign it to the event’s DisplayText parameter.
The editor’s CustomDisplayText event is equivalent to the RepositoryItem.CustomDisplayText event available via the BaseEdit.Properties object. See RepositoryItem.CustomDisplayText for more details.
Example
The code below shows how to provide custom display text for a ProgressBarControl by handling the BaseEdit.CustomDisplayText
event.
In the example, the ProgressBarControl displays a countdown timer.
using DevExpress.XtraEditors;
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
private void Form1_Load(object sender, EventArgs e) {
progressBarControl1.Properties.ShowTitle = true;
progressBarControl1.Properties.PercentView = false;
progressBarControl1.CustomDisplayText += ProgressBarControl1_CustomDisplayText;
timer.Tick += timer1_Tick;
}
private void btnStartTimer_Click(object sender, EventArgs e) {
timer.Enabled = false;
int totalSeconds = 5;
DateTime startTime = DateTime.Now;
progressBarControl1.Tag = startTime;
progressBarControl1.Properties.Minimum = 0;
progressBarControl1.Properties.Maximum = totalSeconds;
progressBarControl1.Position = progressBarControl1.Properties.Minimum;
timer.Enabled = true;
}
private void ProgressBarControl1_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e) {
ProgressBarControl pb = sender as ProgressBarControl;
if (pb.Tag == null) { e.DisplayText = "Stopped"; return; }
int currentPosition = Convert.ToInt32(e.Value);
int maximum = pb.Properties.Maximum;
int secondsLeft = maximum - currentPosition;
TimeSpan timeLeft = new TimeSpan(0, 0, secondsLeft);
string s = string.Format("{0:dd} days {0:hh} hours {0:mm} minutes {0:ss} seconds", timeLeft);
e.DisplayText = s;
}
private void timer1_Tick(object sender, EventArgs e) {
ProgressBarControl pb = progressBarControl1;
if (pb.Tag == null || !(pb.Tag is DateTime)) return;
DateTime startTime = (DateTime)pb.Tag;
DateTime currentTime = DateTime.Now;
int elapsedSeconds = Convert.ToInt32((currentTime - startTime).TotalSeconds);
int totalSeconds = pb.Properties.Maximum;
if (elapsedSeconds >= totalSeconds) {
(sender as System.Windows.Forms.Timer).Enabled = false;
pb.Tag = null;
BeginInvoke(new MethodInvoker(delegate
{
MessageBox.Show("Stop");
}));
}
pb.Position = elapsedSeconds;
}
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the CustomDisplayText event.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.