DevExpress’in sunduğu XtraMessageBox, kullanıcı arayüzünüzde etkileyici bir iletişim kutusu oluşturmanıza olanak tanır. Ancak, bazen standart özelliklerin ötesine geçmek isteyebilirsiniz. Bu makalede, DevExpress’in XtraMessageBoxArgs sınıfını kullanarak nasıl özelleştirilebileceğini öğreneceksiniz.

Özelleştirme Adımları:

  1. XtraMessageBoxArgs Nesnesi Oluşturma: İlk adım, özelleştirme işlemine başlamak için XtraMessageBoxArgs nesnesini oluşturmaktır. Bu nesne, mesaj kutusunun çeşitli özelliklerini belirlemenizi sağlar.
    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
  2. Olayları İşleme Ekleme: Oluşturduğumuz XtraMessageBoxArgs nesnesine olay işleyicileri ekleyerek, mesaj kutusunun davranışını daha fazla kontrol edebiliriz. Örneğin, mesaj kutusu gösterildiğinde bir işlem gerçekleştirmek istiyorsak, `Showing´ olayına bir işleyici ekleyebiliriz.
    args.Showing += Args_Showing;
    
  3. Başlık ve Metin Belirleme: Mesaj kutusunun başlığını ve metnini belirleyin. HTML biçimlendirme gibi özellikleri kullanabilirsiniz.
    args.Caption = "Başlık";
    args.Text = "Bu <b>formu</b> kapatmak istiyor musunuz ?";
  4. İkon ve Ses Ayarları: Mesaj kutusunun ikonunu ve ses efektini belirleyin.
    args.MessageBeepSound = MessageBeepSound.Information;
    args.Icon = DevExpress.Utils.Drawing.Helpers.StockIconHelper.GetWindows8AssociatedIcon(SystemIcons.Warning);
  5. HTML Metin İzni: HTML metin kullanımını etkinleştirin veya devre dışı bırakın.
    args.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
  6. Butonları Belirleme: Mesaj kutusunda hangi butonların görüntüleneceğini belirleyin.
    args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };
    

Örneğin;

private void ShowCustomMessageBox()
{
    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
    args.Showing += Args_Showing;
    args.Caption = "Başlık";
    args.Text = "Bu <b>formu</b> kapatmak istiyor musunuz ?";
    args.MessageBeepSound = MessageBeepSound.Information;                
    args.Icon = DevExpress.Utils.Drawing.Helpers.StockIconHelper.GetWindows8AssociatedIcon(SystemIcons.Warning);
    args.AllowHtmlText = DevExpress.Utils.DefaultBoolean.True;
    args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };

    XtraMessageBox.Show(args);
}

private void Args_Showing(object sender, XtraMessageShowingArgs e)
{
    // Özel işlemler burada gerçekleştirilebilir
}

DevExpress’in XtraMessageBoxArgs sınıfını kullanarak XtraMessageBox’ı özelleştirmek oldukça esnektir. Yukarıdaki adımları takip ederek, mesaj kutularınızı projenizin gereksinimlerine göre kolayca uyarlayabilirsiniz.

İkon ve Ses Ayarları Özelleştirme:
İkon Ayarları:
DevExpress’in XtraMessageBoxArgs sınıfı, özel bir ikon belirlemek için çeşitli seçenekler sunar. Özel bir ikon kullanmak için aşağıdaki adımları izleyebilirsiniz:

  1. Özel İkon Dosyasını Yükleme: İlk olarak, projenize eklediğiniz özel bir ikon dosyasını yükleyin.
  2. İkonu Belirleme: XtraMessageBoxArgs nesnesinin Icon özelliğini ayarlayarak özel ikonu belirleyin.
args.Icon = Image.FromFile("custom_icon.png");

 

Ses Ayarları:
DevExpress, mesaj kutusu gösterildiğinde çalacak olan bir ses efekti belirlemek için de bir seçenek sunar. Bir ses dosyasını kullanarak bu özelliği özelleştirebilirsiniz.

  1. Ses Dosyasını Yükleme: Öncelikle, projenize bir ses dosyası ekleyin.
  2. Ses Efektini Belirleme: XtraMessageBoxArgs nesnesinin MessageBeepSound özelliğini ayarlayarak ses efektini belirleyin.
args.MessageBeepSound = MessageBeepSound.Exclamation;

Showing Olayı:

XtraMessageBoxArgs nesnesi, mesaj kutusu gösterilmeden önce çeşitli işlemleri gerçekleştirmenize olanak tanıyan bir Showing olayına sahiptir. Bu olayı kullanarak mesaj kutusunun davranışını daha fazla özelleştirebilirsiniz. İşte bu olayı kullanarak yapabileceğiniz bazı işlemler:

  1. Mesaj Kutusunu Önleyici: Kullanıcı bazı koşulları sağlamadığında mesaj kutusunun gösterilmesini engelleyin.
private void Args_Showing(object sender, XtraMessageShowingArgs e)
{
    if (!CanShowMessageBox())
    {
        e.Cancel = true;
    }
}

private bool CanShowMessageBox()
{
    // Mesaj kutusunun gösterilip gösterilmeyeceğini belirleyen bir koşul
    return true;
}
  1. Özel İşlemler: Mesaj kutusu gösterilmeden önce özel işlemler gerçekleştirin.
private void Args_Showing(object sender, XtraMessageShowingArgs e)
{
    // Özel işlemler burada gerçekleştirilebilir
    LogMessageBoxShowing();
}

private void LogMessageBoxShowing()
{
    // Mesaj kutusu gösterilmeden önce bir loglama işlemi gerçekleştir
}

Bu örneklerle, XtraMessageBoxArgs sınıfını kullanarak ikon ve ses ayarlarını nasıl özelleştireceğinizi ve Showing olayını nasıl kullanacağınızı daha iyi anlayabilirsiniz. Bu özellikleri projenizin gereksinimlerine göre uyarlamanızı sağlayacak esneklik sunar.

Daha Detaylı bilgi için Devexpress sitesinden faydalanabilirsiniz.
https://docs.devexpress.com/WindowsForms/114566/controls-and-libraries/messages-notifications-and-dialogs/xtramessagebox

https://docs.devexpress.com/WindowsForms/DevExpress.XtraEditors.XtraMessageBoxArgs.Icon

https://docs.devexpress.com/WindowsForms/DevExpress.XtraEditors.XtraBaseArgs.HtmlImages

icon seçme
https://supportcenter.devexpress.com/ticket/details/t524421/can-i-use-messageboxicon-with-xtramessageboxargs

https://supportcenter.devexpress.com/ticket/details/t464167/xtramessagebox-how-to-hide-the-close-button