Interessantes

Ipsum Dolor

Vehicula fermentum ligula at pretium. Suspendisse semper iaculis eros, eu aliquam iaculis. Phasellus ultrices diam sit amet orci lacinia sed consequat.

DevExpress Tips

Hervorragende Tools für unsere Projekte

In unseren Projekten haben wir schon mit mehreren Tools dieser Art gearbeitet, sind aber mit DevExpress extrem zufrieden. Die breite Palette der Controls für die verschiedensten Aufgabengebiete lassen nichts zu wünschen übrig. Schneller und aufmerksamer Support zeichnen unsere Beziehung mit DevExpress aus.

Es kommt aber immer wieder vor, dass man im Auftrag des Kunden oder einfach weil es so gemacht werden muss, an einen Stolperstein kommt. Stundenlange Recherche führen meistens zum Ziel, in vielen Fällen aber fehlt noch ein bisschen. Hier kommen unsere Tips ins Spiel, in denen wir solche Fälle ansprechen und auch deren Lösungen.

CheckedComboBoxEdit mit 'All Items' Titel, wenn alle Einträge ausgewählt sind

Bei einer CheckedComboBoxEdit kann man einzelne Werte auswählen oder aber alle.  Das Problem ist aber, das dann ein langer Text oder aber nur der Text eines bestimmten Wertes angezeigt wird. Das ist nicht immer hilfreich. Da gibt es aber eine sehr nette Lösung [viel spaß]:

// Bei jeder Änderung in dem control wird geprüft, ob alle Einträge markiert worden sind oder nicht. 
private void checkedComboBoxEdit_EditValueChanged(object sender, EventArgs e) 

allItemsChecked = CheckIfAllItemsCheckedInCheckedComboBoxEdit(sender); 
}
// Der zu setzende Text, wenn alle Einträge markiert worden sind. 
private void checkedComboBoxEdit_CustomDisplayText(object sender, CustomDisplayTextEventArgs e) 

if (allItemsChecked) 
e.DisplayText = "All Checked"

#endregion
// Da man oft mehr als eine dieser controls verwendet, ist diese Routine sehr nützlich... 
private bool CheckIfAllItemsCheckedInCheckedComboBoxEdit(object sender) 

var edit = sender as CheckedComboBoxEdit; 
return edit != null && edit.Properties.Items.All(item => item.CheckState == CheckState.Checked); 
}

Anpassen der Custom Edit Form: Buttons

Wenn man mit dem GridView arbeitet und das editieren einer Zeile mit einer Custom Edit Form erledigen will, ist das eigentlich sehr gut erklärt.  Problematisch wird es immer dann, wenn der Kunde noch ein paar Sonderwünsche äußert, wie zum Beispiel An- und Ausschalten von Feldern, Benennung und vieles mehr. Die Edit Form ist aber erstmals nicht dafür ausgelegt worden und man muss sich schon ein wenig anstrengen, um diese anzupassen.  Wollen wir zum Beispiel den Button „Aktualisieren“ in „Speichern“ umbenennen, dann wird das so erledigt:

/// <summary> 
/// Die Standard Buttons in der Edit Form haben Ihre festgelegte Bezeichnung. 
/// Hier werden diese ermittelt und dann angepasst. 
/// </summary> 
/// <param name="editForm">The edit form.</param> 
private void ChangeButtonInEditForm(XtraForm editForm) 

foreach (Control control in editForm.Controls) 

if (!(control is EditFormContainer)) continue;
foreach (Control nestedControl in control.Controls) 

if (!(nestedControl is PanelControl)) continue
foreach (Control button in nestedControl.Controls) 

if (!(button is SimpleButton)) continue;
var simpleButton = button as SimpleButton; 
ChangeButtonCaption(simpleButton); 
ChangeButtonSize(simpleButton); 



}
/// <summary> 
/// Ändern der sichtbaren Bezeichnung der Standard Buttons in der Edit Form. 
/// </summary> 
/// <param name="btn">The BTN.</param> 
/// <exception cref="System.ArgumentNullException">Es wurde kein Button gefunden.</exception> 
private static void ChangeButtonCaption([NotNull] SimpleButton btn) 

if (btn == nullthrow new ArgumentNullException("Es wurde kein Button gefunden."); 
if (btn.Text == "Aktualisieren"

btn.Text = "Speichern"

}
/// <summary> 
/// Anpassen der Größe der angepassten Stadard Buttons in der Edit Form, nachdem diese Ihre Bezeichnung geändert haben. 
/// </summary> 
/// <param name="btn">The BTN.</param> 
/// <exception cref="System.ArgumentNullException">Es wurde kein Button gefunden.</exception> 
private static void ChangeButtonSize([NotNull] SimpleButton btn) 

if (btn == nullthrow new ArgumentNullException("Es wurde kein Button gefunden."); 
btn.CalcBestSize(); 
}