سؤال

أريد عرض رابط للمساعدة في مربع رسالة. بشكل افتراضي يتم عرض النص كسلسلة غير قابلة للتحديد.

هل كانت مفيدة؟

المحلول

يتم عرض أحد الخيارات عنوان URL في مربع الرسالة، إلى جانب رسالة وتوفير زر التعليمات الذي يأخذك إلى عنوان URL هذا:

MessageBox.Show(
    "test message",
    "caption",
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Information,
    MessageBoxDefaultButton.Button1,
    0, '0 is default otherwise use MessageBoxOptions Enum
    "http://google.com",
    "keyword")

من المهم ملاحظة أن هذا الرمز لا يمكن أن يكون في حدث تحميل النموذج، فلن يفتح زر التعليمات الرابط.

نصائح أخرى

يمكنك استعمال ال LinkLabel السيطرة على الخاصة بك Form لهذا. لسوء الحظ، ال MessageBox لا يمكن تخصيص النموذج بهذه الطريقة، لذلك ستحتاج إلى إنشاء خاصة بك Form لتقليد MessageBox لأغراضك.

رسالة MessageBox لن تفعل ذلك. ستحتاج إما إلى استخدام TaskDialog (قدم في Vista) أو إنشاء مربع الحوار الخاص بك.

--يحرر--
هناك طرق لتزوير مربع حوار المهمة على XP. هناك عدد قليل من المقالات على CodeProject.com الذي استخدمته في الماضي.

يجب عليك إنشاء النموذج الخاص بك، بدلا من صندوق MessageBox المدمج، ويمكنك استخدام LinkLabel عليه.

ومع ذلك، على زر MessageBox المدمج، يمكن عرض زر المساعدة بين الأزرار.

يمكنك استخدام بعض الكود المخصص مع LinkLabel مثله:

        if (hyperLinks != null)
        {
            foreach (var link in hyperLinks)
            {
                var linkLabel = new LinkLabel();
                linkLabel.Text = link;
                linkLabel.Width = WhateverParentPanelYouHave.Width;
                linkLabel.Click += LabelClicked;
                WhateverParentPanelYouHave.Controls.Add(linkLabel);
             }
         }

أين hyperLinks هي قائمة بالسلاسل لروابطك.

ثم لك LabelClicked معالج:

      private async void LabelClicked(object sender, EventArgs e)
      {
        var linkLabel = (LinkLabel) sender;
        var path = linkLabel.Text;
        try
        {
            await Task.Run(() => Process.Start($@"{path}"));
        }
        catch (Exception ex)
        {
            MessageBox.ShowMessage(ex.Message, @"An Error Has Occurred");
        }

      }

ضع في اعتبارك، هذا هو شكل خاص بك مع LinkLabel السيطرة المضافة إليها. عليك أن ترث من Form واستخدام ShowDialog() طريقة لعرض النموذج الخاص بك مع إضافة عناصر التحكم الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top