• <menu id="w2i4a"></menu>
  • logo DevExpress WinForms使用教程

    文檔首頁(yè)>>DevExpress WinForms使用教程>>DevExpress Winforms使用技巧教程:如何允許用戶跳過(guò)消息

    DevExpress Winforms使用技巧教程:如何允許用戶跳過(guò)消息


    下載DevExpress v19.2完整版    DevExpress v19.2漢化資源獲取

    DevExpress Winforms Controls 內(nèi)置140多個(gè)UI控件和庫(kù),完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。想要體驗(yàn)?點(diǎn)擊下載>>

    Message Boxes是DevExpress WinForms產(chǎn)品組合中高價(jià)值實(shí)用程序控件的完美示例。由于大多數(shù)應(yīng)用程序都是通過(guò)消息框與用戶進(jìn)行通信的,所以WinForms Message Box控件將在即將發(fā)布的v20.1中出現(xiàn),本文主要將為大家闡述此功能。

    DevExpress XtraMessageBox對(duì)象與默認(rèn)的WinForms消息相對(duì)應(yīng),XtraMessageBox的主要優(yōu)勢(shì)在于其使用DevExpress應(yīng)用程序皮膚的功能,盡管這是一個(gè)重要的優(yōu)勢(shì),但這絕不是XtraMessageBox的唯一優(yōu)勢(shì)。

    DevExpress Winforms使用技巧教程

    雖然您可以使用標(biāo)準(zhǔn)方法顯示消息(將文本字符串和按鈕設(shè)置為靜態(tài)XtraMessageBox.Show()方法重載),但您也可以創(chuàng)建XtraMessageBoxArgs對(duì)象并將其作為唯一的Show方法參數(shù)傳遞。 此對(duì)象允許您合并其他操作,例如您可以顯示嵌入式計(jì)時(shí)器到期時(shí)自動(dòng)關(guān)閉的消息。

    DevExpress Winforms使用技巧教程

    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
    args.AutoCloseOptions.Delay = 5000;
    args.Caption = "Auto-close message";
    args.Text = "This message closes automatically after 5 seconds.";
    args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel };
    //show a countdown on a default button
    args.AutoCloseOptions.ShowTimerOnDefaultButton = true;
    XtraMessageBox.Show(args);

    XtraMessageBoxArgs.Showing事件允許您在屏幕上顯示消息表單之前對(duì)其進(jìn)行訪問(wèn)和修改,您可以將其用于各種各樣的事情,例如限制消息寬度。

    DevExpress Winforms使用技巧教程

    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
    args.Caption = "A very long message";
    args.Text = "A message box attempts to show all of its text content in one line. " +
    "If you do not limit the form size, this message will be very long and thin. " +
    "Set the maximum form width and the form will wrap this long text.";
    args.Buttons = new DialogResult[] { DialogResult.OK, DialogResult.Cancel};
    args.Showing += Args_Showing;
    XtraMessageBox.Show(args);
    
    private void Args_Showing(object sender, XtraMessageShowingArgs e)
    {
    e.Form.MaximumSize = new Size(600, 600);
    }

    ...或自定義消息按鈕(更改標(biāo)題或向其提供矢量圖像)。

    DevExpress Winforms使用技巧教程

    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
    args.Caption = "A message with icons";
    args.Text = "This message displays custom SVG images in its buttons";
    args.Buttons = new DialogResult[] {
    DialogResult.OK, DialogResult.Cancel, DialogResult.Retry };
    args.Showing += Args_Showing;
    XtraMessageBox.Show(args);
    
    void Args_Showing(object sender, XtraMessageShowingArgs e) {
    foreach (var control in e.Form.Controls)
    {
    SimpleButton button = control as SimpleButton;
    if (button != null)
    {
    button.ImageOptions.SvgImageSize = new Size(16, 16);
    button.ImageOptions.ImageToTextAlignment = ImageAlignToText.LeftCenter;
    //button.Height = 25;
    switch (button.DialogResult)
    {
    case (DialogResult.OK):
    button.ImageOptions.SvgImage = svgImageCollection1[0];
    break;
    case (DialogResult.Cancel):
    button.ImageOptions.SvgImage = svgImageCollection1[1];
    break;
    case (DialogResult.Retry):
    button.ImageOptions.SvgImage = svgImageCollection1[2];
    break;
    }
    }
    }
    }

    使用v20.1,您將能夠輕松地在消息中包含"Do not show this message again" 復(fù)選框,如果您想在項(xiàng)目中加入此功能,只需將布爾值XtraMessageBoxArgs.DoNotShowAgainCheckBoxVisible設(shè)置為true,復(fù)選框文本也是可自定義的。

    DevExpress Winforms使用技巧教程

    XtraMessageBoxArgs args = new XtraMessageBoxArgs();
    args.Caption = "Message";
    args.Text = "You are using a trial version. The trial period expires in 30 days";
    args.DoNotShowAgainCheckBoxVisible = true;
    args.DoNotShowAgainCheckBoxText = "Do not remind me again";
    XtraMessageBox.Show(args);

    此復(fù)選框本身不會(huì)執(zhí)行任何操作,當(dāng)消息出現(xiàn)在屏幕上(或被消除)時(shí),它將引發(fā)Load和Closed事件。 您需要處理這些事件來(lái)存儲(chǔ)和檢索e.Visible屬性值,此屬性值指定用戶是否選擇隱藏消息。如果Load事件參數(shù)收到e.Visible屬性值為false,則該消息被取消。

    args.Load += Args_Load;
    args.Closed += Args_Closed;
    
    void Args_Closed(object sender, XtraMessageBoxClosedArgs e) {
    //save e.Visible to a database or a local storage file
    }
    
    void Args_Load(object sender, XtraMessageBoxLoadArgs e) {
    //retireve the value from a database or a local storage file
    e.Visible = value;
    }

    與e.Visible一起,您還可以存儲(chǔ)e.DialogResult屬性值,它對(duì)應(yīng)于關(guān)閉消息時(shí)使用的最后一個(gè)已知DialogResult。如果消息被抑制,則可以使用此值,以便Show方法返回上一個(gè)用戶選擇,而不是DialogResult.None。

    void Args_Load(object sender, XtraMessageBoxLoadArgs e) {
    e.Visible = _restoredVisibleValue_;
    if (!e.Visible)
    {
    //restore the e.DialogResult property
    e.DialogResult = _restoredDialogResultValue_;
    }
    }

    對(duì)于那些不想手動(dòng)保存和還原這些參數(shù)的用戶,為您提供將其存儲(chǔ)在注冊(cè)表中的選項(xiàng)。 為此,請(qǐng)?jiān)贑losed事件上調(diào)用SaveToRegistry方法,并在加載時(shí)調(diào)用RestoreFromRegistry。

    void Args_Closed(object sender, XtraMessageBoxClosedArgs e) {
    e.SaveToRegistry();
    }
    
    void Args_Load(object sender, XtraMessageBoxLoadArgs e) {
    e.RestoreFromRegistry();
    }

    此代碼將DialogResult和Visible鍵保存在Computer \ HKEY_CURRENT_USER \ Software \ X \ Y路徑下,其中:

    • XtraMessageBox.RegistryPath屬性的X - value;或未設(shè)置該屬性,則為Path.Combine(Application.CompanyName,Application.ProductName,“ Messages”);
    • XtraMessageBoxArgs.RegistryKey屬性的Y - value,或自動(dòng)生成的ID。
    DevExpress Winforms使用技巧教程

    最后即使用戶選擇隱藏消息,也可以強(qiáng)制顯示消息。 為此請(qǐng)?jiān)贚oad事件處理程序中調(diào)用e.ShowMessage方法,布爾方法參數(shù)指定是否應(yīng)選中"Do not show again" 復(fù)選框。


    DevExpress Dashboard控件實(shí)操公開課4月即將開啟,

    專家名師在線直播,免費(fèi)聽課名額先到先得~

    DevExpress技術(shù)交流群:540330292      歡迎一起進(jìn)群討論

    掃描關(guān)注DevExpress中文網(wǎng)微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊

    DevExpress中文網(wǎng)微信
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();