উইন্ডোজ ফর্মগুলিতে প্রম্পট ডায়ালগ


115

আমি ব্যবহার করছি System.Windows.Formsতবে আশ্চর্যের বিষয় এগুলি তৈরি করার ক্ষমতা নেই।

জাভাস্ক্রিপ্ট ছাড়াই আমি কীভাবে জাভাস্ক্রিপ্ট প্রম্পট ডায়ালগের মতো কিছু পেতে পারি?

মেসেজবক্স দুর্দান্ত, তবে ব্যবহারকারীর পক্ষে কোনও ইনপুট প্রবেশের উপায় নেই।

আমি চাই যে ব্যবহারকারী কোনও পাঠ্য ইনপুট সম্ভব প্রবেশ করুক।


আপনি যা করার চেষ্টা করছেন তার একটি কোড উদাহরণ পোস্ট করতে পারেন?
অ্যান্ড্রু কুপার

আপনি কী ধরণের ইনপুট খুঁজছেন, আরও কিছু বিশদ দিন। কমনডায়ালগ উত্তরাধিকারসূত্রে প্রাপ্ত ক্লাসগুলির দিকে নজর রাখুন এর মধ্যে কোনওটি কি আপনার জন্য সঠিক দেখাচ্ছে?
সঞ্জীবকুমার হীরমঠ

21
কিভাবে তিন জনের ওপি জিজ্ঞাসা আরো বিস্তারিত জানার এবং কোড নমুনার দিতে কিন্তু এটা প্রশংসনীয় পরিষ্কার তিনি যা দ্বারা মানে মজার "একটি জাভাস্ক্রিপ্ট প্রম্পট ডায়লগ মত"
ক্যামিলো মার্টিন

2
এখানে দুটি উদাহরণ রয়েছে, একটি বেসিক এবং অন্যটি ইনপুট বৈধতা সহ: 1. বেসিক - csharp- উদাহরণস্বরূপ.টায় / ইনপুটবক্স 2. বৈধতা - csharp-eximar.net/inputbox-class
জেসনএম 1

উত্তর:


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
কীভাবে একজন এটিকে প্রসারিত করবে) একটি বাতিল বোতাম থাকবে এবং খ) ফেরতের আগে কোনওভাবে পাঠ্যক্ষেত্রের পাঠ্যটিকে বৈধতা দেবে?
ইওক

@ ইওক স্রেফ একটি ফর্ম তৈরি করুন, ফর্ম ডিজাইনার আপনাকে এটি আপনার পছন্দ মতো করে দিতে সহায়তা করবে।
ক্যামিলো মার্টিন

1
@ সিয়ান ওয়ার্ল আমি এটির উল্লেখ নেই কোথায়।
বাস

1
যা আমি এটি যোগ করে সম্পন্ন করেছি: prompt.AcceptButton = নিশ্চিতকরণ;
বি ক্লে শ্যানন

1
ব্যবহারকারীদের বন্ধ বোতামটি সহ প্রম্পট বাতিল করে এবং একটি খালি স্ট্রিং ফিরিয়ে দেওয়ার জন্য হ্যান্ডেল যুক্ত কোড
ম্যাথু লক

53

Microsoft.VisualBasicআপনার সি # কোডে রেফারেন্স যুক্ত করুন এবং এটি ব্যবহার করুন:

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

রেফারেন্স যুক্ত করতে: আপনার প্রজেক্ট এক্সপ্লোরার উইন্ডোতে রেফারেন্সগুলিতে তারপরে অ্যাড রেফারেন্সে ডান ক্লিক করুন এবং সেই তালিকা থেকে ভিজ্যুয়াল বেস দেখুন check


4
এই InteractionMicrosoft.VisualBasic
খলিল খালাফ

1
এটি কাস্টম শ্রেণীর সমাধানের চেয়ে কিছুটা ভাল কারণ এটি উচ্চ-ডিপিআই স্ক্রিনগুলি সমর্থন করে
গামাছে

আমি জানি সম্ভবত কাস্টম সমাধানটি ব্যবহার করা আরও ভাল হবে তবে আমি একটি দ্রুত এবং সহজ সমাধান খুঁজছি, এবং এটি সর্বোত্তম ছিল। ধন্যবাদ, সত্যিই, সকলকে।
জুনো

14

স্থানীয়ভাবে উইন্ডোজ ফর্মগুলিতে এ জাতীয় কোনও জিনিস নেই।

তার জন্য আপনাকে নিজের ফর্ম তৈরি করতে হবে বা:

Microsoft.VisualBasicরেফারেন্স ব্যবহার করুন ।

ইনপুটবক্স হ'ল লেগ্যাসি কোড V


2
এটি Microsoft.VisualBasic.Compatibilityনেমস্পেসের ক্ষেত্রে সত্য । Microsoft.VisualBasic। নেট এর শীর্ষে সহায়তাকারী গ্রন্থাগারগুলির একটি সেট আরও বেশি সত্যই কোনও ভিবি নির্দিষ্ট নয়।
জিম উলি

-1 কারণ ভিবি রেফারেন্স সম্পর্কে অসমর্থিত বক্তব্য। এই খুব দরকারী বিল্ট-ইন বৈশিষ্ট্যটি ব্যবহার থেকে লোকদের ভয় দেখানোর কোনও কারণ নেই।
UuDdLrLrSs

6

সাধারণত সি # প্রোগ্রামগুলিতে ভিজ্যুয়াল বেসিক লাইব্রেরিগুলি আমদানি করা সত্যিকারের ভাল ধারণা নয় (এটি কেবলমাত্র সামঞ্জস্য, শৈলী এবং আপগ্রেড করার দক্ষতার জন্য নয়), তবে আপনি মাইক্রোসফ্ট.ভিউজুয়ালবাসিক.আইনট্রাকশনকে কল করতে পারেন (ইনপুটবক্স) () আপনি যে ধরণের বাক্স সন্ধান করছেন তা প্রদর্শন করতে।

যদি আপনি একটি উইন্ডোজ তৈরি করতে পারেন For ফর্মস অবজেক্ট, এটি সর্বোত্তম হবে তবে আপনি বলছেন যে আপনি এটি করতে পারবেন না।


26
কেন এটি একটি ভাল ধারণা নয়? সম্ভাব্য "সামঞ্জস্য" এবং "আপগ্রেড করার ক্ষমতা" সমস্যাগুলি কী কী? আমি একমত যে "স্টাইলিস্টিকালি" কথা বলতে গেলে, বেশিরভাগ সি # প্রোগ্রামাররা নামধারী নাম থেকে ক্লাস ব্যবহার না করা পছন্দ করেন VisualBasic, তবে এটি কেবল তাদের মাথায়। এই অনুভূতির কোনও বাস্তবতা নেই। এটি ঠিক পাশাপাশি নাম স্থান বলা হবে Microsoft.MakeMyLifeEasierWithAlreadyImplementedMethods
কোডি গ্রে

3
সাধারণভাবে, মাইক্রোসফ্ট.ভিউজুয়াল বেসিক প্যাকেজটি কেবলমাত্র ভিবি 6 থেকে আপগ্রেডিং কোডকে সহজতর করার জন্য বোঝানো হয়েছে। মাইক্রোসফ্ট স্থায়ীভাবে ভিবিতে সূর্যাস্তের জন্য হুমকি দিয়ে চলেছে (যদিও এটি সম্ভবত বাস্তবে কখনও ঘটবে না), তাই এই নামস্থানটির জন্য ভবিষ্যতে সহায়তা নিশ্চিত করা যায় না। অতিরিক্তভাবে। নেট এর একটি সুবিধা হ'ল বহনযোগ্যতা বলে মনে করা হয় - নেট কোড ফ্রেমওয়ার্ক ইনস্টল থাকা যে কোনও প্ল্যাটফর্মে একই কোড চলবে। মাইক্রোসফ্ট.ভিউজুয়াল বেসিককে অন্য কোনও প্ল্যাটফর্মে উপলব্ধ থাকার গ্যারান্টি নেই (এটির জন্য মূল্য কী তা সহ, নেট নেট মোবাইল, যেখানে এটি একেবারেই পাওয়া যায় না)।
শন ওয়ারলে

22
ত্রুটিপূর্ণ. এটি Microsoft.VisualBasic.Compatibilityসাব-নেমস্পেস, পুরো জিনিস নয়। Microsoft.VisualBasicনেমস্পেসে প্রচুর "কোর" কার্যকারিতা অন্তর্ভুক্ত রয়েছে ; এটা কোথাও যাচ্ছে না। মাইক্রোসফ্ট ভিবি 6 নেট, ভিবি 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

বাসের উত্তরটি আপনাকে তাত্ত্বিকভাবে স্মৃতিশক্তিতে ফেলে দিতে পারে, যেহেতু শোডায়ালগ নিষ্পত্তি হবে না। আমি মনে করি এটি একটি আরও সঠিক উপায়। দীর্ঘ পাঠ্য সহ পাঠ্য লেবেল পাঠযোগ্য বলেও উল্লেখ করুন।

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- ডায়ালগ- পার্ট 1-1

আমি স্রেফ ডাউনলোড করেছি এবং আমার প্রকল্পে ইনপুটবক্স.পি অনুলিপি করেছি।

বিস্মিত হলেও এর চেয়ে ভাল আর কিছু নেই ... আমার একমাত্র আসল অভিযোগ হ'ল ক্যাপশন পাঠ্য এতে নতুন লাইনগুলিকে সমর্থন করে না কারণ এটি লেবেল নিয়ন্ত্রণ ব্যবহার করে।


উত্তম উত্তর, তবে জিজ্ঞাসা করা প্রশ্নের
আওতার বাইরে

1

দুর্ভাগ্যক্রমে সি # এখনও বিল্ট ইন লিবাসে এই ক্ষমতাটি সরবরাহ করে না। বর্তমানে সর্বোত্তম সমাধান হ'ল একটি পদ্ধতিতে একটি কাস্টম ক্লাস তৈরি করা যা একটি ছোট ফর্ম পপ করে। আপনি যদি ভিজ্যুয়াল স্টুডিওতে কাজ করছেন তবে আপনি প্রকল্প> অ্যাড ক্লাসে ক্লিক করে এটি করতে পারেন

ক্লাস যুক্ত করুন

ভিজ্যুয়াল সি # আইটেম> কোড> শ্রেণি ক্লাস 2 যোগ করুন

পপআপবক্স শ্রেণীর নাম দিন (আপনি যদি পছন্দ করেন তবে এটির পরে নাম পরিবর্তন করতে পারেন) এবং নিম্নলিখিত কোডটিতে পেস্ট করুন:

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

এখানে ভিবি.এনইটি-র একটি উদাহরণ

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.