উইনফর্মস কনটেক্সটমেনুতে কীভাবে বিভাজক যুক্ত করবেন?


103

আমার নিয়ন্ত্রণের ভিতরে, আমার আছে:

ContextMenu = new ContextMenu();
ContextMenu.MenuItems.Add(new MenuItem("&Add Item", onAddSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Edit Item", onEditSpeaker));
ContextMenu.MenuItems.Add(new MenuItem("&Delete Item", onDeleteSpeaker));
ContextMenu.MenuItems.Add( ??? );
ContextMenu.MenuItems.Add(new MenuItem("Cancel"));

কীভাবে এই কনটেক্সটমেনুতে আলাদা করার লাইন যুক্ত করবেন?


নামের সামনে 'এবং' এর ব্যবহার কী?
গারবেন লিম্বুর্গ

3
@ গ্রবেনলিমবার্গ: 'এবং' আপনাকে শর্টকাট কী (এটি " মেমোনিক " বলা হয় ) ডিজাইন করতে দেয় যা ব্যবহারকারীর জন্য উপলব্ধ হবে (আল্টের সাথে মিলিত)।
ওটিয়েল

উত্তর:


225

আমি বিশ্বাস করি এটি কেবল একটি ড্যাশ:

ContextMenu.MenuItems.Add("-");

এটি উইন্ডোজের অনেকগুলি দুর্বল নথিযুক্ত আইটেমগুলির মধ্যে একটি। আমার কয়েক মাস আগে এটি করা দরকার ছিল। আমার মনে আছে আমি উইন 32 এ এটি করতে পারি, তবে বাক্য গঠনটি মনে করতে পারিনি। এটি সন্ধান করার জন্য আমি কিছু পুরানো ভিসি ++ 6 ফাইল টেনে শেষ করেছি। যাইহোক, আমি এখনও মাঝে মাঝে কিছু জিনিসের জন্য "দ্য পেটজোল্ড বুক" উল্লেখ করি। বাহ, আমি বুড়ো বোধ করছি ...
ব্র্যাড ব্রুস

24
নিশ্চয় এটি আরো পাঠযোগ্য ContextMenu.Items.Add(new ToolStripSeparator()); দেখুন গ্যাব্রিয়েল এর উত্তর
MarkJ

9
@ মারকজে, কনটেক্সটমেনুর আর আইটেমের সম্পত্তি নেই has টুলস্ট্রিপসেপেটর () কনটেক্সটেমেনু.আইটেমস.এড যোগ করুন () এর জন্যও বৈধ যুক্তি নয়।
সাইফার

3
দ্রষ্টব্য যে আপনি ভিজ্যুয়াল স্টুডিও উইন্ডোজ ফর্ম ডিজাইনারের মেনু ডিজাইনারের "এখানে টাইপ করুন" এন্ট্রি ক্ষেত্রে হাইফেনটি প্রবেশ করে দৃশ্যমানভাবে এটি করতে পারেন। বিভাজক সঙ্গে সঙ্গে ডিজাইনার উপস্থিত হবে।
বাগিবিয়

48

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

yourContextMenu.Items.Add(new ToolStripSeparator());

5
। নেট 2 উইন্টারফর্মস কনটেক্সটমেনু ক্লাসের আইটেমের সম্পত্তি নেই।
অ্যান্ড্রুস

6
এটি কেবলমাত্র একটি ContextMenuStrip দিয়ে সম্ভব এবং কোনও ContextMenu দিয়ে নয়।
গেরবেন লিম্বার্গ

1
এবং আপনি করতে পারেন yourContextMenu.Items.Insert(3, new ToolStripSeparator());, তবে আপনি Insert"-" ড্যাশ করতে পারবেন না ।
ওটিয়েল

1
নিখুঁত ধন্যবাদ অনেক
গরুড় প্রসাদ কে


7

আপনি যদি ডিজাইনার ব্যবহার করে থাকেন তবে পাঠ্য হিসাবে একটি মাত্র হাইফেন রাখুন "-" আপনি নিজের মেনু আইটেমের নাম রাখবেন। প্রবেশ হিট করার পরে পৃথককারী তৈরি করা হবে।


3

হাইফেনটিতে পাঠ্যের বৈশিষ্ট্য সেট করুন।


1

অনুভূমিক বিভাজকগুলি দুর্দান্ত তবে আপনি যদি এর পরিবর্তে উল্লম্ব বিভাজক চান?

ভাল, আপনি চিন্তা করবেন না - আপনার একটি থাকতে পারে!

সেট BarBreakথেকে সম্পত্তি trueউপর MenuItemযা SEPERATOR পর প্রথম এক হওয়া উচিত:

var item = new MenuItem(text: "Settings", onClick: SomeFunction) { BarBreak = true };

এখানে চিত্র বর্ণনা লিখুন

একটি আইটেম যোগ করার জন্য MenuItemsসংগ্রহ: yourContextMenu.MenuItems.Add(item)


0

সম্ভবত ভিজ্যুয়াল স্টুডিওর পরবর্তী সংস্করণগুলিতে তারা এটিকে আরও সহজ করে তুলেছে। আমি ভিএস 2012 ব্যবহার করছি You ফর্ম ডিজাইনারের মাধ্যমে আপনি একটি বিভাজক যুক্ত করতে পারেন। 1) একটি মেনুস্ট্রিপ নির্বাচন / তৈরি করুন। 2) "এখানে টাইপ করুন", ডান মাউসটিতে। 3) "সন্নিবেশ" নির্বাচন করুন। 4) "বিভাজক" নির্বাচন করুন। 5) আপনি যে পাঠ্যটি উপরে থাকতে চান তাতে নতুন বিভাজকটিকে টেনে আনুন। সম্পন্ন.


0

ContextMenuহয়েছে একটি কন্সট্রাকটর যার একটি অ্যারের পায় MenuItemবস্তু। বলা বাহুল্য, আপনি সেই অ্যারেটিতে একটি স্ট্রিং যোগ করতে পারবেন না। তবে আপনি একটি যুক্ত করে একটি পৃথক পেতে পারেন new MenuItem("-"):

    var contextMenu = new ContextMenu(new[]
    {
        timerMenuItem,
        keypressMenuItem,
        new MenuItem("-"), // Seperator
        new MenuItem(text: "Exit", onClick: (sender, args) => Application.Exit())
    });
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.