উইন্ডোজ ফর্মগুলি ব্যবহার করে একটি বোতামের উপরে একটি সরঞ্জামদণ্ড প্রদর্শন করুন


214

আমি কীভাবে উইন্ডোজ ফর্মগুলি ব্যবহার করে একটি বোতামের উপরে একটি সরঞ্জামদণ্ডটি প্রদর্শন করতে পারি ?


11
নিম্নলিখিত নিবন্ধটি ভিজ্যুয়ালগুলির সাথে এটির সর্বোত্তম ব্যাখ্যা করেছে: http://www.dotnetperls.com/tooltip
ভাইচিড্রেওয়ার

উত্তর:


222

টুলটিপটি আসলে একটি উইনফর্মস নিয়ন্ত্রণ যা একক ফর্মের একাধিক উপাদানগুলির জন্য সরঞ্জাম টিপস প্রদর্শন করে।

বলুন আপনার বোতামটি মাইবাটন বলে।

  1. আপনার ফর্মটিতে একটি টুলটিপ নিয়ন্ত্রণ যুক্ত করুন (উইন্ডোজ ফর্ম সরঞ্জামবক্সে সাধারণ নিয়ন্ত্রণের অধীনে)।
  2. এটিকে একটি নাম দিন - বলুন মাইটুলটিপ
  3. মাইবাটনের "টুলটিপ অন মাইটুলটিপ" সেট করুন (বোতামের সম্পত্তি গ্রিডে মিসের অধীনে) যে পাঠ্যটি প্রদর্শিত হবে তার উপরে প্রদর্শিত হবে h

কার্সারটি বোতামের ওপরে উঠলে টুলটিপটি স্বয়ংক্রিয়ভাবে উপস্থিত হবে, তবে যদি আপনি এটি অগ্রগতিভাবে প্রদর্শন করতে চান, কল করুন

MyToolTip.Show("Tooltip text goes here", MyButton)

আপনার কোডটিতে টুলটিপটি দেখানোর জন্য এবং মাইটুলটিপ.হাইড (মাইবাটন) এটিকে আবার অদৃশ্য করার জন্য


সুন্দর, তবে একটি প্রশ্ন: যদি আমার ফর্মে একাধিক বোতাম থাকে তবে আমার আরও টুলটিপ দরকার বা আমি একই সরঞ্জামদণ্ডের জন্য একাধিক বিবরণ এবং বোতাম সেট করতে পারি?
griboz

8
আপনার ফর্মটিতে কেবল একটি একক সরঞ্জামদ্বীপ নিয়ন্ত্রণ প্রয়োজন - প্রতিটি বোতামটিতে আলাদা আলাদা সাহায্যের পাঠ্য থাকতে পারে (এ কারণেই "মাইটুলটিপ অনুলিপি" সম্পর্কিত নিয়ন্ত্রণের সম্পত্তি, নিজেই টুলটিপ নিয়ন্ত্রণের নয়)
ডিলান বিটি

2
সহজতম ক্ষেত্রে ফর্মটিতে টুলটিপ যুক্ত করা সবচেয়ে ভাল কাজ। সমস্যা: কাস্টম নিয়ন্ত্রণের ডিজাইনের সময় আপনার প্যারেন্ট ফর্মটির কোনও উল্লেখ নেই। সমাধান: নিয়ন্ত্রণে একটি টুলটিপ অবজেক্ট তৈরি করুন। ফর্মের সাথে প্রয়োজনীয়ভাবে সংযুক্ত হিসাবে টুলটিপ অবজেক্টটি ভাবেন না।
স্টাফেন গরিখন

93

ফর্ম ডিজাইনার ব্যবহার:

  • ফর্মের উপর, টুলবক্স থেকে সরঞ্জামটিপ নিয়ন্ত্রণটি টানুন।
  • আপনি নিয়ন্ত্রণ টিপতে টিপ টিপতে প্রদর্শিত চান তার বৈশিষ্ট্যগুলি নির্বাচন করুন।
  • 'টুলটিপ 1 এ টুলটিপ' সম্পত্তিটি সন্ধান করুন (যদি আপনি এটির ডিফল্ট নাম পরিবর্তন করেন তবে নামটি সরঞ্জামটিপ 1 নাও হতে পারে)।
  • আপনি প্রদর্শিত করতে চাইছেন এমন সরঞ্জামের টিপের পাঠ্যটিতে সম্পত্তিটির পাঠ্য সেট করুন।

আপনি নিম্নলিখিত কলটি ব্যবহার করে সরঞ্জাম টিপটি প্রগতিগতভাবে সেট করতে পারেন:

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");

45

আপনি টুলটিপ ক্লাসটি ব্যবহার করতে পারেন:

একটি নিয়ন্ত্রণের জন্য একটি সরঞ্জামশালা তৈরি করা

উদাহরণ:

private void Form1_Load(object sender, System.EventArgs e)
{
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.Button1, "Hello");
}

1
এটি স্বয়ংক্রিয় উত্পাদিত ভিএস কোডের সাথে সরাসরি সংহত করার কারণে এটি উপযুক্ত সমাধান। ধন্যবাদ :)
anon58192932

@ ডেভেকে ধন্যবাদ এই উপায়ে আরও ভাল কারণ আমি এক জায়গায় সমস্ত
সরঞ্জামদণ্ডগুলি

ধন্যবাদ। এই প্রশ্নের সেরা এবং সবচেয়ে সোজা উত্তর।
নজিব

এমনকি আরও খাটো:new ToolTip().SetToolTip(this.Button1, "Hello");
The_Black_Smurf

6

ডিফল্ট টুলটিপের জন্য এটি ব্যবহার করা যেতে পারে -

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");

টুলটিপ মেসেজের জন্য যদি ফর্ম্যাটিং প্রয়োজন হয় তবে একটি কাস্টমাইজড টুলটিপ ব্যবহার করা যেতে পারে। এটি কাস্টম ফর্ম্যাট করার মাধ্যমে তৈরি করা যেতে পারে এবং নিয়ন্ত্রণের মাউস হোভার ইভেন্টে এটি টুলটিপ ডায়ালগ হিসাবে ব্যবহার করতে পারে। আরও তথ্যের জন্য দয়া করে নীচের লিঙ্কটি চেক করুন -

http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html


5

ট্যাগ বৈশিষ্ট্যে অলস এবং কমপ্যাক্ট সংরক্ষণের পাঠ্য

আপনি যদি কিছুটা অলস হন এবং অন্য কোনও কিছুর জন্য নিয়ন্ত্রণগুলির ট্যাগ সম্পত্তিটি ব্যবহার না করেন তবে আপনি এটি টিপটিপ টেক্সটটি সঞ্চয় করতে ব্যবহার করতে পারেন এবং মাউসহোভার ইভেন্ট হ্যান্ডলারগুলিকে একসাথে এই জাতীয় নিয়ন্ত্রণগুলিতে নিয়োগ করতে পারেন:

    private System.Windows.Forms.ToolTip ToolTip1;
    private void PrepareTooltips()
    {
        ToolTip1 = new System.Windows.Forms.ToolTip();
        foreach(Control ctrl in this.Controls)
        {
            if (ctrl is Button && ctrl.Tag is string)
            {
                ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
                {
                    var btn = (Control)o;
                    ToolTip1.SetToolTip(btn, btn.Tag.ToString());
                });
            }
        }
    }

এই ক্ষেত্রে ট্যাগ বৈশিষ্ট্যে স্ট্রিংযুক্ত সমস্ত বোতামকে একটি মাউসহোভার ইভেন্ট বরাদ্দ করা হয় । এটি কমপ্যাক্ট রাখতে মাউসহোভার ইভেন্টটি ল্যাম্বডা এক্সপ্রেশনটি ব্যবহার করে ইনলাইনটি সংজ্ঞায়িত করা হয়েছে। ইভেন্টে যে কোনও বোতাম আটকানোতে তার ট্যাগ পাঠ্যটি সরঞ্জামদণ্ডে নির্ধারিত হবে এবং প্রদর্শিত হবে।


4

.NET ফ্রেমওয়ার্কটি একটি টুলটিপ শ্রেণি সরবরাহ করে। আপনার ফর্মটিতে এর মধ্যে একটি যোগ করুন এবং তারপরে প্রতিটি আইটেমের জন্য মাউসহোভার ইভেন্টে আপনার একটি টুলটিপ চাইলে নীচের মতো কিছু করুন:

    private void checkBox1_MouseHover(object sender, EventArgs e)
    {
        toolTip1.Show("text", checkBox1);
    }

4
private void Form1_Load(object sender, System.EventArgs e)
{
    ToolTip toolTip1 = new ToolTip();
    toolTip1.AutoPopDelay = 5000;
    toolTip1.InitialDelay = 1000;
    toolTip1.ReshowDelay = 500;
    toolTip1.ShowAlways = true;
    toolTip1.SetToolTip(this.button1, "My button1");
    toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}

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

0

ডেভেকের উত্তরের ভিত্তিতে , আমি একটি নিয়ন্ত্রণ এক্সটেনশান তৈরি করেছি:

public static void SetToolTip(this Control control, string txt)
{
    new ToolTip().SetToolTip(control, txt);
}

তারপরে আপনি কোনও একক লাইনের সাহায্যে কোনও নিয়ন্ত্রণের জন্য সরঞ্জামটিপ সেট করতে পারেন:

this.MyButton.SetToolTip("Hello world");

-4

অবশ্যই, কেবল মাউস হোভার ইভেন্টটি পরিচালনা করুন এবং একটি সরঞ্জাম টিপ প্রদর্শন করতে বলুন। টি গ্লোবাল বা কনস্ট্রাক্টর ব্যবহার করে সংজ্ঞায়িত একটি টুলটিপ:

ToolTip t = new ToolTip();

তারপরে ইভেন্ট হ্যান্ডলার:

private void control_MouseHover(object sender, EventArgs e)
{
  t.Show("Text", (Control)sender);
}

2
আমি মনে করি আপনি ভোট পেয়ে গেছেন কারণ এটি উইন্ডোজ ফর্মগুলিতে টুলটিপ নিয়ন্ত্রণ ব্যবহার করার উপায় নয়। ফর্মটিতে আপনার কেবল একটিরকম নিয়ন্ত্রণ দরকার এবং এটি সমস্ত নিয়ন্ত্রণের টিপস প্রদর্শন করে। অন্যান্য প্রতিক্রিয়াগুলিতে কোড দেখুন।
জুলিয়ান মেলভিল

1
আমি অনুমান করি যে ব্যাখ্যাটি কোডের সাথে মেলে না, যেখানে আমি বলেছিলাম যে ব্যাখ্যাটিতে এটি প্রদর্শিত হয় এবং কোডেও আমি এটি সূচনা করি। আমার খারাপ। : P: P
ভেজে

2
@ জুলিয়ানজ আসলে, এটি বিশেষায়িত টুলটিপস রাখার জন্য ভাল কাজ করে যা আপনি যদি রাজ্যের উপর নির্ভর করে গতিশীল হতে পারেন (অবশ্যই বিয়োগটি তৈরি করুন - আমাকে ক্ষমা করুন, আমি এগুলি সবই একটি ব্লকের মধ্যে ফিট করার চেষ্টা করছিলাম।) যেমন অন্য একটি প্রতিক্রিয়া হিসাবে অনুরূপ শিরা ... yshuditelu এবং ডিলান Beatti তাত্ক্ষণিকভাবে ছাড়া একই ছিল।
ভেজে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.