विंडोज फॉर्म में शीघ्र डायलॉग


115

मै इस्तेमाल कर रहा हूँ System.Windows.Forms लेकिन अजीब तरह से उन्हें बनाने की क्षमता नहीं है।

मैं जावास्क्रिप्ट के बिना, जावास्क्रिप्ट शीघ्र संवाद की तरह कुछ कैसे प्राप्त कर सकता हूं?

MessageBox अच्छा है, लेकिन उपयोगकर्ता के पास इनपुट दर्ज करने का कोई तरीका नहीं है।

मैं चाहता हूं कि उपयोगकर्ता किसी भी पाठ इनपुट में प्रवेश कर सके।


क्या आप जो करने की कोशिश कर रहे हैं उसका एक कोड उदाहरण पोस्ट कर सकते हैं?
एंड्रयू कूपर

आप किस तरह के इनपुट की तलाश कर रहे हैं, थोड़ा और विवरण दें। CommonDialog उन विरासतों को देखती है, जो उनमें से किसी को भी आपके लिए सही लगती हैं?
संजीवकुमार हिरेमथ

21
यह मजेदार है कि कैसे तीन लोग ओपी को अधिक विवरण और कोड नमूने देने के लिए कहते हैं, लेकिन यह बहुत स्पष्ट है कि वह "एक जावास्क्रिप्ट स्क्रिप्ट डायलॉग" से क्या मतलब है ।
कैमिलो मार्टिन

2
यहाँ दो उदाहरण हैं, एक मूल और दूसरा इनपुट सत्यापन के साथ: 1. मूल - csharp-examples.net/inputbox 2. सत्यापन - csharp-examples.net/inputbox-class
जेसनएम

जवाबों:


274

आपको अपना प्रॉम्प्ट डायलॉग बनाने की आवश्यकता है। आप शायद इसके लिए एक वर्ग बना सकते हैं।

public static class Prompt
{
    public static string ShowDialog(string text, string caption)
    {
        Form prompt = new Form()
        {
            Width = 500,
            Height = 150,
            FormBorderStyle = FormBorderStyle.FixedDialog,
            Text = caption,
            StartPosition = FormStartPosition.CenterScreen
        };
        Label textLabel = new Label() { Left = 50, Top=20, Text=text };
        TextBox textBox = new TextBox() { Left = 50, Top=50, Width=400 };
        Button confirmation = new Button() { Text = "Ok", Left=350, Width=100, Top=70, DialogResult = DialogResult.OK };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(confirmation);
        prompt.Controls.Add(textLabel);
        prompt.AcceptButton = confirmation;

        return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
    }
}

और बुला रहा है:

string promptValue = Prompt.ShowDialog("Test", "123");

अपडेट करें :

टिप्पणी और एक अन्य प्रश्न के आधार पर डिफ़ॉल्ट बटन ( कुंजी दर्ज करें ) और प्रारंभिक ध्यान केंद्रित किया ।


1
वापसी के पहले किसी तरह से रद्द करें बटन और B) पाठ क्षेत्र में पाठ को मान्य करने के लिए इसे कैसे विस्तारित किया जाएगा?
इवोक

@ewok बस एक फॉर्म बनाएं, फॉर्म डिज़ाइनर आपको इसे उस तरह से बिछाने में मदद करेगा जैसे आप चाहते हैं।
कैमिलो मार्टिन

1
@ सीन मुझे नहीं दिखता कि इसका उल्लेख कहाँ है।
बास

1
जो मैंने इसे जोड़कर पूरा किया: प्रॉम्प्ट। एसेप्टबटन = पुष्टि;
बी क्ले शैनन

1
क्लोज बटन के साथ प्रॉम्प्ट को रद्द करने और खाली स्ट्रिंग पर लौटने वाले उपयोगकर्ता को संभालने के लिए जोड़ा गया कोड
मैथ्यू लॉक

53

संदर्भ जोड़ें Microsoft.VisualBasicऔर इसे अपने C # कोड में उपयोग करें:

string input = Microsoft.VisualBasic.Interaction.InputBox("Prompt", 
                       "Title", 
                       "Default", 
                       0, 
                       0);

रेफ़रेंस जोड़ने के लिए: अपनी प्रोजेक्ट एक्सप्लोरर विंडो में संदर्भों पर राइट-क्लिक करें, फिर संदर्भ जोड़ें, और उस सूची के लिए VisualBasic जांचें।


4
यह कहते हैं Interactionकि नाम स्थान में मौजूद नहीं हैMicrosoft.VisualBasic
खलील खलफ

1
यह कस्टम क्लास समाधान की तुलना में थोड़ा बेहतर है क्योंकि यह उच्च-डीपीआई स्क्रीन का समर्थन करता है
गमच

मुझे पता है कि शायद कस्टम समाधान का उपयोग करना बेहतर होगा लेकिन मैं एक त्वरित और आसान समाधान की तलाश में हूं और यह सबसे अच्छा था। धन्यवाद, वास्तव में, सभी को।
जुआन जू

14

विंडोज फॉर्म में मूल रूप से ऐसी कोई बात नहीं है।

आपको उसके लिए अपना खुद का फॉर्म बनाना होगा या:

Microsoft.VisualBasicसंदर्भ का उपयोग करें ।

इनपुटबॉक्स विरासत कोड VB6 संगतता के लिए .Net में लाया जाता है - इसलिए मैं ऐसा नहीं करने की सलाह देता हूं।


2
यह Microsoft.VisualBasic.Compatibilityनामस्थान के लिए सही है । Microsoft.VisualBasic.Net के शीर्ष पर सहायक पुस्तकालयों का एक सेट अधिक है और वास्तव में वीबी विशिष्ट नहीं है।
जिम वोलेइ

-1 VB संदर्भ के बारे में गलत कथन के कारण। इस बहुत उपयोगी बिल्ट-इन सुविधा का उपयोग करने से लोगों को डरने का कोई कारण नहीं।
UUDdLrLrSs

6

यह आमतौर पर VisualBasic पुस्तकालयों को C # कार्यक्रमों में आयात करने के लिए एक वास्तविक अच्छा विचार नहीं है (क्योंकि वे काम नहीं करेंगे, लेकिन सिर्फ संगतता, शैली और उन्नयन की क्षमता के लिए), लेकिन आप Microsoft.VisualBasic.Interaction.InputBox () कॉल कर सकते हैं उस तरह के बॉक्स को प्रदर्शित करने के लिए जिसे आप खोज रहे हैं।

यदि आप एक Windows.Forms ऑब्जेक्ट बना सकते हैं, तो यह सबसे अच्छा होगा, लेकिन आप कहते हैं कि आप ऐसा नहीं कर सकते।


26
यह एक अच्छा विचार क्यों नहीं है? संभावित "संगतता" और "समस्याओं को अपग्रेड करने की क्षमता" क्या हैं? मैं मानता हूँ कि "शैलीवादी" बोलना, अधिकांश C # प्रोग्रामर एक नाम स्थान से कक्षाओं का उपयोग नहीं करना पसंद करेंगे VisualBasic, लेकिन यह केवल उनके सिर में है। उस भावना के लिए कोई वास्तविकता नहीं है। यह सिर्फ Microsoft.MakeMyLifeEasierWithAlreadyImplementedMethodsनामस्थान कहा जाएगा ।
कोड़ी ग्रे

3
सामान्य तौर पर, Microsoft.VisualBasic पैकेज केवल VB 6 से उन्नयन कोड को सरल बनाने के लिए है। Microsoft स्थायी रूप से सूर्यास्त VB (हालांकि यह वास्तव में कभी नहीं होगा) को धमकी देता रहता है, इसलिए इस नाम स्थान के लिए भविष्य के समर्थन की गारंटी नहीं है। इसके अतिरिक्त, .Net को होने वाले फायदों में से एक को पोर्टेबिलिटी माना जाता है - वही कोड किसी भी प्लेटफ़ॉर्म पर चलेगा, जिसमें-नेट फ्रेमवर्क स्थापित हो। Microsoft.VisualBasic, हालांकि, किसी अन्य प्लेटफ़ॉर्म पर उपलब्ध होने की गारंटी नहीं है (सहित, इसके लिए क्या मूल्य है। नेट मोबाइल, जहां यह बिल्कुल उपलब्ध नहीं है)।
सीन वर्ले

22
गलत। वह Microsoft.VisualBasic.Compatibilityसब-नेमस्पेस है, पूरी बात नहीं। "कोर" कार्यक्षमता के बहुत सारे Microsoft.VisualBasicनामस्थान में शामिल हैं ; यह कहीं नहीं जा रहा है। Microsoft ने VB.NET को "सूर्यास्त" VB 6 की धमकी दी है। उन्होंने बार-बार वादा किया है कि यह कहीं नहीं जा रहा है। कुछ लोगों को अभी भी अंतर ... पता लगा है के लिए नहीं लग रहे हैं
कोड़ी ग्रे

4

ऐसा करने का अन्य तरीका: यह मानते हुए कि आपके पास एक टेक्स्टबॉक्स इनपुट प्रकार है, एक फ़ॉर्म बनाएँ, और एक सार्वजनिक संपत्ति के रूप में टेक्स्टबॉक्स मान है।

public partial class TextPrompt : Form
{
    public string Value
    {
        get { return tbText.Text.Trim(); }
    }

    public TextPrompt(string promptInstructions)
    {
        InitializeComponent();

        lblPromptText.Text = promptInstructions;
    }

    private void BtnSubmitText_Click(object sender, EventArgs e)
    {
        Close();
    }

    private void TextPrompt_Load(object sender, EventArgs e)
    {
        CenterToParent();
    }
}

मुख्य रूप में, यह कोड होगा:

var t = new TextPrompt(this, "Type the name of the settings file:");
t.ShowDialog()

;

इस तरह, कोड साफ दिखता है:

  1. यदि सत्यापन तर्क जोड़ा जाता है।
  2. यदि विभिन्न अन्य इनपुट प्रकार जोड़े जाते हैं।

4

बास का उत्तर आपको सैद्धांतिक रूप से मेमोरीट्रेबल में मिल सकता है, क्योंकि ShowDialog का निपटान नहीं किया जाएगा। मुझे लगता है कि यह अधिक उचित तरीका है। टेक्स्टलेबेल का उल्लेख करें जो लंबे पाठ के साथ पठनीय हो।

public class Prompt : IDisposable
{
    private Form prompt { get; set; }
    public string Result { get; }

    public Prompt(string text, string caption)
    {
        Result = ShowDialog(text, caption);
    }
    //use a using statement
    private string ShowDialog(string text, string caption)
    {
        prompt = new Form()
        {
            Width = 500,
            Height = 150,
            FormBorderStyle = FormBorderStyle.FixedDialog,
            Text = caption,
            StartPosition = FormStartPosition.CenterScreen,
            TopMost = true
        };
        Label textLabel = new Label() { Left = 50, Top = 20, Text = text, Dock = DockStyle.Top, TextAlign = ContentAlignment.MiddleCenter };
        TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
        Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(confirmation);
        prompt.Controls.Add(textLabel);
        prompt.AcceptButton = confirmation;

        return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : "";
    }

    public void Dispose()
    {
        //See Marcus comment
        if (prompt != null) { 
            prompt.Dispose(); 
        }
    }
}

कार्यान्वयन:

using(Prompt prompt = new Prompt("text", "caption")){
    string result = prompt.Result;
}

2
स्मृति प्रबंधन का अच्छा उपयोग। लेकिन, रद्द बटन जोड़ते समय यह विफल हो जाता है क्योंकि promptउस बिंदु पर शून्य है। एक साधारण ठीक शीघ्र रद्द अनुमति देने के लिए बदलने के लिए है prompt.Dispose();के अंदर public void Dispose()के साथif (prompt != null) { prompt.Dispose(); }
मार्कस पार्सन्स

3

ऊपर बास ब्रेकेलामन्स के काम के आधार पर, मैंने दो व्युत्पन्न भी बनाए हैं -> "इनपुट" संवाद जो आपको उपयोगकर्ता से एक पाठ मूल्य और एक बूलियन (टेक्स्टबॉक्स और चेकबॉक्स) दोनों प्राप्त करने की अनुमति देते हैं:

public static class PromptForTextAndBoolean
{
    public static string ShowDialog(string caption, string text, string boolStr)
    {
        Form prompt = new Form();
        prompt.Width = 280;
        prompt.Height = 160;
        prompt.Text = caption;
        Label textLabel = new Label() { Left = 16, Top = 20, Width = 240, Text = text };
        TextBox textBox = new TextBox() { Left = 16, Top = 40, Width = 240, TabIndex = 0, TabStop = true };
        CheckBox ckbx = new CheckBox() { Left = 16, Top = 60, Width = 240, Text = boolStr };
        Button confirmation = new Button() { Text = "Okay!", Left = 16, Width = 80, Top = 88, TabIndex = 1, TabStop = true };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textLabel);
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(ckbx);
        prompt.Controls.Add(confirmation);
        prompt.AcceptButton = confirmation;
        prompt.StartPosition = FormStartPosition.CenterScreen;
        prompt.ShowDialog();
        return string.Format("{0};{1}", textBox.Text, ckbx.Checked.ToString());
    }
}

... और कई विकल्पों में से एक के चयन के साथ पाठ (टेक्स्टबॉक्स और कॉम्बो बॉक्स):

public static class PromptForTextAndSelection
{
    public static string ShowDialog(string caption, string text, string selStr)
    {
        Form prompt = new Form();
        prompt.Width = 280;
        prompt.Height = 160;
        prompt.Text = caption;
        Label textLabel = new Label() { Left = 16, Top = 20, Width = 240, Text = text };
        TextBox textBox = new TextBox() { Left = 16, Top = 40, Width = 240, TabIndex = 0, TabStop = true };
        Label selLabel = new Label() { Left = 16, Top = 66, Width = 88, Text = selStr };
        ComboBox cmbx = new ComboBox() { Left = 112, Top = 64, Width = 144 };
        cmbx.Items.Add("Dark Grey");
        cmbx.Items.Add("Orange");
        cmbx.Items.Add("None");
        Button confirmation = new Button() { Text = "In Ordnung!", Left = 16, Width = 80, Top = 88, TabIndex = 1, TabStop = true };
        confirmation.Click += (sender, e) => { prompt.Close(); };
        prompt.Controls.Add(textLabel);
        prompt.Controls.Add(textBox);
        prompt.Controls.Add(selLabel);
        prompt.Controls.Add(cmbx);
        prompt.Controls.Add(confirmation);
        prompt.AcceptButton = confirmation;
        prompt.StartPosition = FormStartPosition.CenterScreen;
        prompt.ShowDialog();
        return string.Format("{0};{1}", textBox.Text, cmbx.SelectedItem.ToString());
    }
}

दोनों को एक ही प्रयोग की आवश्यकता होती है:

using System;
using System.Windows.Forms;

उन्हें ऐसे कॉल करें:

उन्हें ऐसे कॉल करें:

PromptForTextAndBoolean.ShowDialog("Jazz", "What text should accompany the checkbox?", "Allow Scat Singing"); 

PromptForTextAndSelection.ShowDialog("Rock", "What should the name of the band be?", "Beret color to wear");

2

इसकी सरलता में बास ब्रिकेलमन्स का जवाब बहुत ही सुरुचिपूर्ण है। लेकिन, मैंने पाया कि वास्तविक आवेदन के लिए कुछ अधिक आवश्यक है जैसे:

  • संदेश पाठ बहुत लंबा होने पर उचित रूप से विकसित करें।
  • स्क्रीन के बीच में स्वचालित रूप से पॉपअप नहीं होता है।
  • उपयोगकर्ता इनपुट का कोई सत्यापन प्रदान नहीं करता है।

यहाँ वर्ग इन सीमाओं को संभालता है: http://www.codeproject.com/Articles/31315/Getting-User-Input-With-Dialogs-Part-1

मैंने बस स्रोत डाउनलोड किया और अपने प्रोजेक्ट में InputBox.cs की प्रतिलिपि बनाई।

हैरानी की बात यह है कि हालांकि कुछ बेहतर नहीं है ... मेरी एकमात्र वास्तविक शिकायत यह है कि कैप्शन टेक्स्ट इसमें नई कहानियों का समर्थन नहीं करता है क्योंकि यह एक लेबल नियंत्रण का उपयोग करता है।


अच्छा जवाब, लेकिन पूछे गए सवाल के दायरे से बाहर
मुनीम मुन्ना

1

दुर्भाग्य से C # अभी भी बिल्ट इन लिबास में इस क्षमता की पेशकश नहीं करता है। वर्तमान में सबसे अच्छा समाधान एक विधि के साथ एक कस्टम वर्ग बनाना है जो एक छोटे रूप को पॉप अप करता है। यदि आप विज़ुअल स्टूडियो में काम कर रहे हैं तो आप प्रोजेक्ट> ऐड क्लास पर क्लिक करके ऐसा कर सकते हैं

क्लास जोड़ें

दृश्य C # आइटम> कोड> वर्ग कक्षा 2 को जोड़ें

नाम वर्ग PopUpBox (आप इसे बाद में नाम बदल सकते हैं यदि आप चाहें) और निम्न कोड में पेस्ट करें:

using System.Drawing;
using System.Windows.Forms;

namespace yourNameSpaceHere
{
    public class PopUpBox
    {
        private static Form prompt { get; set; }

        public static string GetUserInput(string instructions, string caption)
        {
            string sUserInput = "";
            prompt = new Form() //create a new form at run time
            {
                Width = 500, Height = 150, FormBorderStyle = FormBorderStyle.FixedDialog, Text = caption,
                StartPosition = FormStartPosition.CenterScreen, TopMost = true
            };
            //create a label for the form which will have instructions for user input
            Label lblTitle = new Label() { Left = 50, Top = 20, Text = instructions, Dock = DockStyle.Top, TextAlign = ContentAlignment.TopCenter };
            TextBox txtTextInput = new TextBox() { Left = 50, Top = 50, Width = 400 };

            ////////////////////////////OK button
            Button btnOK = new Button() { Text = "OK", Left = 250, Width = 100, Top = 70, DialogResult = DialogResult.OK };
            btnOK.Click += (sender, e) => 
            {
                sUserInput = txtTextInput.Text;
                prompt.Close();
            };
            prompt.Controls.Add(txtTextInput);
            prompt.Controls.Add(btnOK);
            prompt.Controls.Add(lblTitle);
            prompt.AcceptButton = btnOK;
            ///////////////////////////////////////

            //////////////////////////Cancel button
            Button btnCancel = new Button() { Text = "Cancel", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.Cancel };
            btnCancel.Click += (sender, e) => 
            {
                sUserInput = "cancel";
                prompt.Close();
            };
            prompt.Controls.Add(btnCancel);
            prompt.CancelButton = btnCancel;
            ///////////////////////////////////////

            prompt.ShowDialog();
            return sUserInput;
        }

        public void Dispose()
        {prompt.Dispose();}
    }
}

आपको जो भी उपयोग कर रहे हैं, आपको नाम स्थान बदलने की आवश्यकता होगी। विधि एक स्ट्रिंग लौटाती है, इसलिए यहां एक उदाहरण दिया गया है कि इसे अपनी कॉलिंग विधि में कैसे लागू किया जाए:

bool boolTryAgain = false;

do
{
    string sTextFromUser = PopUpBox.GetUserInput("Enter your text below:", "Dialog box title");
    if (sTextFromUser == "")
    {
        DialogResult dialogResult = MessageBox.Show("You did not enter anything. Try again?", "Error", MessageBoxButtons.YesNo);
        if (dialogResult == DialogResult.Yes)
        {
            boolTryAgain = true; //will reopen the dialog for user to input text again
        }
        else if (dialogResult == DialogResult.No)
        {
            //exit/cancel
            MessageBox.Show("operation cancelled");
            boolTryAgain = false;
        }//end if
    }
    else
    {
        if (sTextFromUser == "cancel")
        {
            MessageBox.Show("operation cancelled");
        }
        else
        {
            MessageBox.Show("Here is the text you entered: '" + sTextFromUser + "'");
            //do something here with the user input
        }

    }
} while (boolTryAgain == true);

यह विधि किसी पाठ मान, खाली स्ट्रिंग, या "रद्द करें" के लिए दिए गए स्ट्रिंग की जांच करती है (getUserInput विधि रद्द बटन पर क्लिक करने पर "रद्द करें") और उसी के अनुसार कार्य करती है। यदि उपयोगकर्ता ने कुछ भी दर्ज नहीं किया है और ठीक क्लिक किया है तो यह उपयोगकर्ता को बताएगा और उनसे पूछेगा कि क्या वे अपने पाठ को रद्द या फिर से दर्ज करना चाहते हैं।

पोस्ट नोट्स: अपने स्वयं के कार्यान्वयन में मैंने पाया कि अन्य सभी उत्तर निम्नलिखित में से 1 या अधिक गायब थे:

  • एक रद्द बटन
  • विधि में भेजे गए स्ट्रिंग में प्रतीकों को शामिल करने की क्षमता
  • विधि का उपयोग कैसे करें और लौटे मूल्य को संभालें।

इस प्रकार, मैंने अपना समाधान पोस्ट किया है। मुझे आशा है कि किसी को यह उपयोगी लगता है। अपने योगदान के लिए बास और गिदोन + टिप्पणीकारों को श्रेय, आपने मुझे एक उपयोगी समाधान के साथ आने में मदद की!


0

यहाँ मेरा रिफलेक्टेड संस्करण है जो एक विकल्प के रूप में मल्टीलाइन / सिंगल को स्वीकार करता है

   public string ShowDialog(string text, string caption, bool isMultiline = false, int formWidth = 300, int formHeight = 200)
        {
            var prompt = new Form
            {
                Width = formWidth,
                Height = isMultiline ? formHeight : formHeight - 70,
                FormBorderStyle = isMultiline ? FormBorderStyle.Sizable : FormBorderStyle.FixedSingle,
                Text = caption,
                StartPosition = FormStartPosition.CenterScreen,
                MaximizeBox = isMultiline
            };

            var textLabel = new Label
            {
                Left = 10,
                Padding = new Padding(0, 3, 0, 0),
                Text = text,
                Dock = DockStyle.Top
            };

            var textBox = new TextBox
            {
                Left = isMultiline ? 50 : 4,
                Top = isMultiline ? 50 : textLabel.Height + 4,
                Multiline = isMultiline,
                Dock = isMultiline ? DockStyle.Fill : DockStyle.None,
                Width = prompt.Width - 24,
                Anchor = isMultiline ? AnchorStyles.Left | AnchorStyles.Top : AnchorStyles.Left | AnchorStyles.Right
            };

            var confirmationButton = new Button
            {
                Text = @"OK",
                Cursor = Cursors.Hand,
                DialogResult = DialogResult.OK,
                Dock = DockStyle.Bottom,
            };

            confirmationButton.Click += (sender, e) =>
            {
                prompt.Close();
            };

            prompt.Controls.Add(textBox);
            prompt.Controls.Add(confirmationButton);
            prompt.Controls.Add(textLabel);

            return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : string.Empty;
        }

-2

यहाँ VB.NET में एक उदाहरण है

Public Function ShowtheDialog(caption As String, text As String, selStr As String) As String
    Dim prompt As New Form()
    prompt.Width = 280
    prompt.Height = 160
    prompt.Text = caption
    Dim textLabel As New Label() With { _
         .Left = 16, _
         .Top = 20, _
         .Width = 240, _
         .Text = text _
    }
    Dim textBox As New TextBox() With { _
         .Left = 16, _
         .Top = 40, _
         .Width = 240, _
         .TabIndex = 0, _
         .TabStop = True _
    }
    Dim selLabel As New Label() With { _
         .Left = 16, _
         .Top = 66, _
         .Width = 88, _
         .Text = selStr _
    }
    Dim cmbx As New ComboBox() With { _
         .Left = 112, _
         .Top = 64, _
         .Width = 144 _
    }
    cmbx.Items.Add("Dark Grey")
    cmbx.Items.Add("Orange")
    cmbx.Items.Add("None")
    cmbx.SelectedIndex = 0
    Dim confirmation As New Button() With { _
         .Text = "In Ordnung!", _
         .Left = 16, _
         .Width = 80, _
         .Top = 88, _
         .TabIndex = 1, _
         .TabStop = True _
    }
    AddHandler confirmation.Click, Sub(sender, e) prompt.Close()
    prompt.Controls.Add(textLabel)
    prompt.Controls.Add(textBox)
    prompt.Controls.Add(selLabel)
    prompt.Controls.Add(cmbx)
    prompt.Controls.Add(confirmation)
    prompt.AcceptButton = confirmation
    prompt.StartPosition = FormStartPosition.CenterScreen
    prompt.ShowDialog()
    Return String.Format("{0};{1}", textBox.Text, cmbx.SelectedItem.ToString())
End Function
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.