نمایش نتایج 1 تا 16 از 16

نام تاپیک: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

  1. #1
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    سلام ، میخواستم ببینم چه طوری میشه به کنترلی که ساختم آیکن بدم که وقتی توی Toolbox به VS اضافه شد آیکنش این نباشه : !

    میخوام مثل اینا باشه :

  2. #2

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    برای انجام اینکار می بایست از اتریبیوت ToolboxBitmap استفاده کنید .
    شکل کلی اون به صورت زیر است :

    [ToolboxBitmap("Bitmap File Address" )]


    فقط توجه داشته باشید که فایل تصویر می بایست BMP باشد و اندازه آن 16 *16 باشد و 16 رنگ.

    برای فهم راحت برای استفاده از مثال زیر استفاده کن

    [ToolboxBitmap(@"C:\ToolBox Image.bmp")]
    class ExtendedTreeView: TreeView
    {
    ...
    }

  3. #3

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    راستی اینو یادم رفت که میتونی از تصاویر مربوط به کنترل های خود فریم ورک هم استفاده کنی .

    مثلا :

    [ToolboxBitmap(typeof(Button))]


    یا

    [ToolboxBitmap(typeof(TreeView))]

    و همینطور تمام کنترل های فریم ورک .موفق باشی

  4. #4

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    سلام
    با تشکر از علی آقا

    اما ببخشید رها حل صحیح این هست:

    شما باید یک عکس همانطور که علی آقا گفتن با فرمت bmp هم نام پروژه ساخته و به پروژه اضافه کنید ( به عنوان یک فایل از پروژه) بعد به صورت کد زیر قرار بالای تعریف کلاس قرار بدید
    [ToolboxBitmap(typeof(MyControl), "MyControl.bmp")]
    public partial class MyControl : UserControl
    {
    #region 'Constructor'
    public MyControl()
    {
    //add your code
    }
    #endregion
    }


    نکته اگر از روش پست دو استفاده کنید وابسته به مسیر کردید که در صورت انتقال به سیستم دیگه یا انتقال عکس دیگه کار نمی کنه حتماً یادتون نره هم نام باشه

    اطلاعات تکمیلی در پست 11 ( صفحه بعد) با تشکر از علی آقا
    آخرین ویرایش به وسیله احمد سامعی : جمعه 25 تیر 1389 در 23:47 عصر

  5. #5
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    مرسی درست شد ...
    منبعی دارید که درباره همه ی :[] هایی که بالایه کلاس ( یا جاهایه دیگه ) مینویسیم توضیح داده باشه ؟
    مثلا من فهمیدم که برای گذاشتن یه متن برای توضیحات یه پروپرتیس از این استفاده میشه :

    [Description("The text of Lable.")]
    public string LableText
    {
    get { return m_LabelText; }
    set { m_LabelText = value; }
    }

    میخوام با بقیش هم آشنا بشم ، ممنون ...

  6. #6

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    سلام.
    ممنون از آقای سامعی که تلاش کردند توضیحات بنده رو تکمیل کنند .

    نقل قول نوشته شده توسط احمد سامعی مشاهده تاپیک
    شما باید یک عکس همانطور که علی آقا گفتن با فرمت bmp هم نام پروژه ساخته و به پروژه اضافه کنید
    نقل قول نوشته شده توسط احمد سامعی مشاهده تاپیک
    حتماً یادتون نره هم نام باشه
    ولی آقای سامعی شما تاکید کردید که فایل هم نام با کنترل سفارشی باشه در صورتی که بنده در هیچ یک از مستندات دات نت این قسمت رو ندیدم ! تازه حالا اگه توجه کرده باشید تاکید کردید که فایل تصویر هم نام با پروژه باشه !؟(لطف می کنید توضیح بدید)

    توجه کنید اگه بخواهید فایل تصویری رو به عنوان ToolboxBitmap کنترلی قرار بدهید بعد از اضافه کردن فایل به پروژه می بایست خصوصیت Build Action فایل رو به Embedded Resource تغییر بدید(تصویر 1 ضمیمه) تا هنگام کامپایل و شکل گیری فایل DLL فایل تصویری به اون تزریق بشه.خوب حالا دیگه نیازی به تغییر نام فایل و همنام کردن با پروژه! نیست

    و حالا می تونید مثلا به صورت زیر عمل کنید (به تصویر 1 و 2 ضمیمه توجه کنید):

        [ToolboxBitmap(typeof(SplitButton ),"AliAghdam.bmp")]
    public class SplitButton : Button
    {
    ...
    {
    و حالا بعد از اضافه کردن نتیجه مطلوب رو بدست می آرید(تصویر 3 ضمیمه)

    اما آقای سامعی میشه توضیح بدید که چرا راه حل شما صحیح است ؟ و وقتی ما یک فایل رو با کنترل هم نام می کنیم چطور بدون تغییر خصیصه Build Action فایل ،اون فایل به DLL تزریق میشه؟

    نقل قول نوشته شده توسط احمد سامعی مشاهده تاپیک
    اما ببخشید رها حل صحیح این هست:
    در رابطه با سوال آقای BILLY_Mgs کد های که بین [] اتریبیوت هستند و فریم ورک پر است از اتریبیوت های مختلف که بهترین منبع MSDN است .
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.jpg‏ (19.1 کیلوبایت, 108 دیدار)
    • نوع فایل: jpg 2.jpg‏ (6.3 کیلوبایت, 106 دیدار)
    • نوع فایل: jpg 3.jpg‏ (9.8 کیلوبایت, 107 دیدار)

  7. #7
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    نقل قول نوشته شده توسط ali.aghdam مشاهده تاپیک
    توجه کنید اگه بخواهید فایل تصویری رو به عنوان ToolboxBitmap کنترلی قرار بدهید بعد از اضافه کردن فایل به پروژه می بایست خصوصیت Build Action فایل رو به Embedded Resource تغییر بدید(تصویر 1 ضمیمه) تا هنگام کامپایل و شکل گیری فایل DLL فایل تصویری به اون تزریق بشه.خوب حالا دیگه نیازی به تغییر نام فایل و همنام کردن با پروژه! نیست
    کاملا درسته !
    منم همین کارو کردم تا درست شد.
    ضمنا از این هم میشه استفاده کرد
    1 : 1 فایل bmp 16*16 به Solution اضافه کنید
    2 : در Solution Explorer روی فایل راست کلیک کنید و توی Properties بزنید و Build Action را Embedded Resource تغییر بدید.
    3 : کد کلاس خودتونو مثل این بنویسید :

    internal class resfinder { }

    namespace MyControls
    {
    [ToolboxBitmap(typeof(resfinder), "ClassLibrary1.MyButton.bmp")]
    public class MyButton : Button
    {
    }
    }

    ClassLibrary1 و resfinder ها نباید تغییر کنند و MyButton.bmp هم میتونین اسم همون فایل bmp را بزارید. اسم کلاس هم که دست خودتونه

  8. #8

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    نقل قول نوشته شده توسط BILLY_Mgs مشاهده تاپیک
    3 : کد کلاس خودتونو مثل این بنویسید :

    internal class resfinder { }

    namespace MyControls
    {
    [ToolboxBitmap(typeof(resfinder), "ClassLibrary1.MyButton.bmp")]
    public class MyButton : Button
    {
    }
    }

    میبخشید این همون روشیه که من گفتم ! درسته؟

    فقط میشه بگید نقش کلاس resfinder اینجا چیه و چرا Type کلاس سفارشی رو قرار ندادید و این کلاس رو استفاده کردید!؟
    راستی نیازی نبود که اسم پروژه رو قبل از فایل (اونجای که قرمز کردم) ذکر کنید چون فایل درون همین پروژه هستش .
    اصلا لزوم وجود این کلاس(resfinder ) چیه؟ بدون این کلاس و هیچ گونه افزونگی کد نویسی میشه این عملو انجام داد (پست بالا)

  9. #9
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    هیچ فرقی نداره منم با رمش شما رفتم ولی دیدم اینم میشه!
    خط سوم ه پست بالا نوشتم (ضمنا از این هم میشه استفاده کرد)
    وقتی resfinder رو میزارید باید ClassLibrary1 رو بزارید
    There are a lot of ways it won't work, I've found only one reliable way, documented by this webpage. The step-by-step instructions: create a new class library project, name it ClassLibrary1. Add a bitmap resource and name it "MyButton.bmp". Click the bitmap in the Solution Explorer and change the Build Action to "Embedded Resource".

    Write your control class code like this:
    using System;
    using System.Drawing;
    using System.Windows.Forms;

    internal class resfinder { }

    namespace MyControls
    {
    [ToolboxBitmap(typeof(resfinder), "ClassLibrary1.MyButton.bmp")]
    public class MyButton : Button
    {
    }
    }

    The "resfinder" class is a trick to let the GetImageFromResource() method find the bitmap resource in the proper namespace. This is necessary because I made the namespace for the control ("MyControls") different from the default namespace of the class library ("ClassLibrary1"). The resfinder type reference forces .NET to look for the bitmap resource in "ClassLibrary1.MyButton.bmp" rather than "MyControls.ClassLibrary1.MyButton.bmp".

    Build the project. Open the project that will use your control. Right-click the tool box and select "Choose items...". Click on Browse and select the ClassLibrary1.dll assembly. You should now see the MyButton control with the proper bitmap.

  10. #10

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    نقل قول نوشته شده توسط BILLY_Mgs مشاهده تاپیک
    هیچ فرقی نداره منم با رمش شما رفتم ولی دیدم اینم میشه!
    خط سوم ه پست بالا نوشتم (ضمنا از این هم میشه استفاده کرد)
    وقتی resfinder رو میزارید باید ClassLibrary1 رو بزارید
    دوست عزیز بنده اگه توجه کرده باشید پرسیدم که دلیل وجود resfinder چیست ؟ و چرا شما ClassLibrary1 رو قرار دادید ؟

    دوست عزیز ظاهرا اینطور که معلومه این مطلب رو از جایی کپی کردید ، لطفا لینک مطلب رو برای حفظ قانون کپی رایت قرار دهید (برای رعایت کپی رایت اول باید خودمونو اصلاح کنیم) تا هم منبع معلوم بشه هم بنده با نویسنده مطلب یه گفتگویی داشته باشم.

    راستی هر مطلب و روشی رو دید تا امتحان و از چکونگی عملکرد آن مطمعن نشدید اینطور انتشار ندهید که باعث سر در گمی مبتدیان دراون قسمت نشود.

    منتظر شما و آقای سامعی هستیم.

  11. #11

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    سلام
    من اول از دوستان معذرت می خوام به خاطر اینکه عجله کردم و در پست 4 دو نکته را نگفتم:

    در نهایت کل کارهایی که باید کرد این هست:

    1. یک عکس هم نام پروژه با فرمت bmp و با سایز 16*16 طراحی کرده و به پروژه اضافه می کنیم
    2. در Properties این عکس Build Action را به Embedded Resource تغییر می دیم (تا به پروژه تزریق بشه)
    3. کد کلاس به شکل زیر می نویسم
    [ToolboxBitmap(typeof(MyControl), "MyControl.bmp")]
    public partial class MyControl : UserControl
    {
    #region 'Constructor'
    public MyControl()
    {
    //add your code
    }
    #endregion
    }


    اما در جواب علی آقا من دلیل اینکه چرا باید هم نام باشه و مستنداش رو نمی دونم تجربی بهش رسیدم من که با نام دیگه امتحان کردم جواب نداد البته تو پروژه اصلی نشون می ده اما وقتی به پروژه دیگه ای منتقل بشه مشکل داره این روش رو هم از روی یک کامپونت تو codeproject.com پیدا کردم

    من برای C#‎‎‎ زیاد به سایت ماکروسافت سر نزدم اما از بخش ASP.NET سایت ماکروسافت که زیاد خوندم همین مقدار فهمیدم که خیلی جاها خودش هم توضیح قابل قبولی برای بعضی از کدها و دستوراتش نداره و خیلی از کدها یا خطاهاش رو هواست و جوابی نداره

  12. #12

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    نقل قول نوشته شده توسط احمد سامعی مشاهده تاپیک
    سلام
    من اول از دوستان معذرت می خوام به خاطر اینکه عجله کردم و در پست 4 دو نکته را نگفتم:

    در نهایت کل کارهایی که باید کرد این هست:

    1. یک عکس هم نام پروژه با فرمت bmp و با سایز 16*16 طراحی کرده و به پروژه اضافه می کنیم
    2. در Properties این عکس Build Action را به Embedded Resource تغییر می دیم (تا به پروژه تزریق بشه)
    3. کد کلاس به شکل زیر می نویسم
    [ToolboxBitmap(typeof(MyControl), "MyControl.bmp")]
    public partial class MyControl : UserControl
    {
    #region 'Constructor'
    public MyControl()
    {
    //add your code
    }
    #endregion
    }
    اما در جواب علی آقا من دلیل اینکه چرا باید هم نام باشه و مستنداش رو نمی دونم تجربی بهش رسیدم من که با نام دیگه امتحان کردم جواب نداد البته تو پروژه اصلی نشون می ده اما وقتی به پروژه دیگه ای منتقل بشه مشکل داره این روش رو هم از روی یک کامپونت تو codeproject.com پیدا کردم

    من برای C#‎‎‎‎ زیاد به سایت ماکروسافت سر نزدم اما از بخش ASP.NET سایت ماکروسافت که زیاد خوندم همین مقدار فهمیدم که خیلی جاها خودش هم توضیح قابل قبولی برای بعضی از کدها و دستوراتش نداره و خیلی از کدها یا خطاهاش رو هواست و جوابی نداره
    سلام
    ببینید دوست عزیز من اینو اصلا قبول ندارم که " خیلی جاها خودش هم توضیح قابل قبولی برای بعضی از کدها و دستوراتش نداره و خیلی از کدها یا خطاهاش رو هواست و جوابی نداره "میشه یه نمونه از اون کدها رو معرفی کنی تا ما هم بدونیم!

    و شما اگه اون پست قبلی + رو چک کنید متوجه می شیدکه بنده همون کار رو انجام دادم با یه فایل به نام AliAghdam.bmp و اون تصویری که گذاشتم (ضمیمه 3)تو یه پروژه و البته تو یه سیستم دیگست !

    راستی این روش شما رو دارم پیگیری می کنم تا به نحوه عملکردش پی ببرم انشاالله.

    ویه نکته که اصلا نیازی نیست که تصویر هم نام با پروژه باشه بلکه باید هم نام با کنترل سفارشی باشه که دارید این اتریبیوت رو بهش نسبت می دید(من که هنوز درگیر این پیچیدگیم)

    ولی هنوز از (آقا/خانوم) ؟ BILLY_Mgs خبری نیست تا دوباره بیان و با اون کدهاشون همه رو شگفت زده بکنند و توضیح کداشونم هم بدن.

  13. #13

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    نقل قول نوشته شده توسط ali.aghdam مشاهده تاپیک
    ویه نکته که اصلا نیازی نیست که تصویر هم نام با پروژه باشه بلکه باید هم نام با کنترل سفارشی باشه که دارید این اتریبیوت رو بهش نسبت می دید(من که هنوز درگیر این پیچیدگیم)
    شاید به خاطر این هم هست که من کنترل سفارشی که می سازم در یک پروژه جدا از برنامه هام هست و فقط همون یک کنترل در اون پروژه هست که باید هم نام باشه و حرف شما درست باشه من نمونه شما را امتحان نکردم اما حتماً درست دارید می گید

    و درباره مشکلات ماکروسافت می تونم به خطای viewEnableStateMAC در ASP.NET اشاره کنم که در سایت خودش سه تا راه داده و در نهایت گفته راه حل قاطعی برای این خطا وجود نداره و باید باهاش سر کنید و متاسفانه هیچ کدام از اون راه حل ها هم جواب نمی ده و مشکلات دیگه ای برای سایت به وجود می یاره الان لینکش یادم نیست اما می تونید سرچ بزنید (این یک نمونه بود و ...)

    البته فکر کنم این بحث ها به این تاپیک مربوط نمی شه و ممکن توسط مدیر تالار قفل بشه که درست هم هست

    در نهایت من قصد بحث و جدل ندارم فقط می خواستم به سوال کننده کمک بشه نمی دونم شما چرا اینقدر کشش می دید مهم اینکه جواب سوال داده شده در پست یازده هم گفتم که نمی دونم مستنداتش چیه

  14. #14
    کاربر تازه وارد آواتار BILLY_Mgs
    تاریخ عضویت
    تیر 1388
    محل زندگی
    @ My Team Foundation Server
    پست
    68

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    http://social.msdn.microsoft.com/for...-cb49b9ea420b/

    قبل پاسخ شما این برا من کار کرد
    This worked great for me too. Some notes:

    1. Add internal class resfinder { } once - in one of your classes.

    2. ClassLibrary1 is the Default namespace that appears in your Project->Properties property sheet. Use Reflect to double check the full names of the bitmaps in the resource file. If there are no resources, see #3 below.

    3. Don't forget to change the Build Action to Embed Resource in the Properties for each bitmap file.
    هنوزم میگم ماله شما صحیح تره! و باید بین صحیح و صحیح تر ، صحیحتر رو انتخاب کرد!
    (آقا/خانوم)ali.aghdam تشکر هارو از پست هاتون حذف کردم به نظرم ارزشش رو نداشت...

  15. #15

    Smile نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    سلام به همه ی دوستان برنامه نویسی

    عزیزان ببینید اگر من از شما سوالی پرسیدم ، مطمعا باشید برای این بود که همه از نحوه کد نویسی دیگران و به طور کلی با نحوه کد نویسی استاندارد آشنا بشیم نه اینکه خواسته باشم کسی رو ناراحت کنم!

    راستی (آقا/خانوم)BILLY_Mgs نمی تونم اون عمل شما رو درک کنم و هیچ احساسی بهش ندارم.

    و کلا این تایپیک دیگه از نظر بنده فراموش شدست.از خداوند متعال عزت و سرافرازي تمامی دوستان برنامه نویس را مسئلت دارم و امیدوارم در اوج به هم بپیوندیم.

  16. #16

    نقل قول: اضافه کردن آیکن به UserControl برای نمایش در ToolBox

    من همه این کارا رو کردن ولی درست نشد - وقتی ازش object می سازی یعنی می اندازی روی فرم شکلش عوش می شود اما شکل tool box عوض نمی شود

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •