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

نام تاپیک: خطا در نمونه سازی از یک کلاس

  1. #1
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    Question خطا در نمونه سازی از یک کلاس

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


    public class ExtendedControl :Control
    {


    ExtendedControl()
    {
    SetStyle(ControlStyles.AllPaintingInWmPaint, true);
    SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
    SetStyle(ControlStyles.UserPaint, true);
    SetStyle(ControlStyles.SupportsTransparentBackColo r, true);
    }


    bool m_isTransparent = false;
    [Description("Gets or sets the 'real' transparency of the control.")]
    public bool IsTransparent
    {
    get { return m_isTransparent; }
    set
    {
    m_isTransparent = value;
    if ((value == true))
    {
    this.BackColor = Color.Transparent;
    }
    Invalidate();
    }
    }
    protected override void OnPaintBackground(System.Windows.Forms.PaintEventA rgs e)
    {
    base.OnPaintBackground(e);


    if ((IsTransparent))
    {
    if (!(Parent == null))
    {
    int myIndex = Parent.Controls.GetChildIndex(this);
    for (int i = Parent.Controls.Count - 1; i >= myIndex + 1; i += -1)
    {
    Control ctrl = Parent.Controls[i];
    if ((ctrl.Bounds.IntersectsWith(Bounds)))
    {
    if ((ctrl.Visible))
    {
    Bitmap bmp = new Bitmap(ctrl.Width, ctrl.Height);
    ctrl.DrawToBitmap(bmp, ctrl.ClientRectangle);
    e.Graphics.TranslateTransform(ctrl.Left - Left, ctrl.Top - Top);
    e.Graphics.DrawImage(bmp, Point.Empty);
    e.Graphics.TranslateTransform(Left - ctrl.Left, Top - ctrl.Top);
    bmp.Dispose();
    }
    }
    }
    }
    }
    }
    }



    اینم کد کلاس نوتیفیکیشن منیجر:



    class NotificationManager
    {
    Timer tmrAnimation;
    Timer tmrDelay;
    //Control where the message will be displayed.
    ExtendedControl displaycontrol = new ExtendedControl();
    //Some property variables.
    Color GlowColor = Color.Blue;
    float alphaval = 0;
    float incr = 0.1f;
    bool isVisible = false;
    SizeF textSize;
    string msg = "";
    Control prnt;
    private void Control_Paint(object sender, PaintEventArgs pe)
    {
    //This BITMAP object will hold the appearance of the notification dialog.
    //Why paint in bitmap? because we will set its opacity and paint it on the control later with a specified alpha.
    Bitmap img = new Bitmap(displaycontrol.Width, displaycontrol.Height);
    Graphics e = Graphics.FromImage(img);


    //Set smoothing.
    e.SmoothingMode = SmoothingMode.AntiAlias;


    //Prepare drawing tools.
    Brush bru = new SolidBrush(Color.FromArgb(50, GlowColor));
    Pen pn = new Pen(bru, 6);
    GraphicsPath gp = new GraphicsPath();


    //Make connecting edges rounded.
    pn.LineJoin = LineJoin.Round;


    //Draw borders
    //Outmost, 50 alpha
    gp.AddRectangle(new Rectangle(3, 3, displaycontrol.Width - 10, displaycontrol.Height - 10));
    e.DrawPath(pn, gp);


    //level 3, A bit solid
    gp.Reset();
    gp.AddRectangle(new Rectangle(5, 5, displaycontrol.Width - 14, displaycontrol.Height - 14));
    e.DrawPath(pn, gp);


    //level 2, a bit more solid
    gp.Reset();
    gp.AddRectangle(new Rectangle(7, 7, displaycontrol.Width - 18, displaycontrol.Height - 18));
    e.DrawPath(pn, gp);


    //level 1, more solidness
    gp.Reset();
    gp.AddRectangle(new Rectangle(9, 9, displaycontrol.Width - 22, displaycontrol.Height - 22));
    e.DrawPath(pn, gp);


    //Draw Content Rectangle.
    gp.Reset();
    bru = new SolidBrush(Color.FromArgb(7, 7, 7));
    pn = new Pen(bru, 5);
    pn.LineJoin = LineJoin.Round;
    gp.AddRectangle(new Rectangle(8, 8, displaycontrol.Width - 20, displaycontrol.Height - 20));
    e.DrawPath(pn, gp);
    e.FillRectangle(bru, new Rectangle(9, 9, displaycontrol.Width - 21, displaycontrol.Height - 21));


    //Set COLORMATRIX (RGBAw).
    //Matrix [3,3] will be the Alpha. Alpha is in float, 0(transparent) - 1(opaque).
    ColorMatrix cma = new ColorMatrix();
    cma.Matrix33 = alphaval;
    ImageAttributes imga = new ImageAttributes();
    imga.SetColorMatrix(cma);


    //Draw the notification message..
    StringFormat sf = new StringFormat();
    sf.Alignment = StringAlignment.Center;
    sf.LineAlignment = StringAlignment.Center;
    e.DrawString(msg, prnt.Font, new SolidBrush(Color.FromArgb(247, 247, 247)), new Rectangle(9, 9, displaycontrol.Width - 21, displaycontrol.Height - 21), sf);


    //Now, draw the content on the control.
    pe.Graphics.DrawImage(img, new Rectangle(0, 0, displaycontrol.Width, displaycontrol.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, imga);


    //Free the memory.
    cma = null;
    sf.Dispose();
    imga.Dispose();
    e.Dispose();
    img.Dispose();
    bru.Dispose();
    pn.Dispose();
    gp.Dispose();


    }


    //Handles the window animation.
    // ERROR: Handles clauses are not supported in C#‎
    private void tmr_tick(object sender, EventArgs e)
    {
    if ((incr > 0))
    {
    if ((alphaval < 1))
    {
    if ((alphaval + incr <= 1))
    {
    alphaval += incr;
    displaycontrol.Refresh();
    }
    else
    {
    alphaval = 1;
    displaycontrol.Refresh();
    tmrAnimation.Enabled = false;
    tmrDelay.Enabled = true;
    }
    }
    }
    else
    {
    if ((alphaval > 0))
    {
    if ((alphaval + incr >= 0))
    {
    alphaval += incr;
    displaycontrol.Refresh();
    }
    else
    {
    alphaval = 0;
    tmrAnimation.Enabled = false;
    tmrAnimation.Dispose();
    tmrDelay.Dispose();
    displaycontrol.Dispose();
    incr = 0.1f;
    isVisible = false;
    }
    }
    }
    }


    //handles the delay.
    // ERROR: Handles clauses are not supported in C#‎
    private void tmrDelay_tick(object sender, EventArgs e)
    {
    incr = -0.1f;
    tmrAnimation.Enabled = true;
    tmrDelay.Enabled = false;
    }
    public void Show(ref Control Parent, string Message, Color glw, int delay)
    {
    if (!(isVisible))
    {
    isVisible = true;
    prnt = Parent;
    msg = Message;
    //Set up notification window.
    displaycontrol = new ExtendedControl();
    displaycontrol.IsTransparent = true;


    //Measure message
    textSize = displaycontrol.CreateGraphics().MeasureString(Mess age, Parent.Font);
    displaycontrol.Height = (int)25 + (int)textSize.Height;
    displaycontrol.Width = (int)35 + (int)textSize.Width;
    if ((textSize.Width > Parent.Width - 100))
    {
    displaycontrol.Width = Parent.Width - 100;
    int hf = (int)textSize.Width / (Parent.Width - 100);
    displaycontrol.Height += (int)(textSize.Height * hf);
    }


    //Position control in parent
    displaycontrol.Left = (Parent.Width - displaycontrol.Width) / 2;
    displaycontrol.Top = (Parent.Height - displaycontrol.Height) - 50;
    Parent.Controls.Add(displaycontrol);
    displaycontrol.BringToFront();
    GlowColor = glw;


    //Set up animation
    tmrAnimation = new Timer();
    tmrAnimation.Interval = 15;
    tmrAnimation.Enabled = true;


    tmrDelay = new Timer();
    tmrDelay.Interval = delay;
    }
    else
    {
    tmrDelay.Stop();
    tmrDelay.Start();
    }
    }


    }





    که روی خط ExtendedControl displaycontrol = new ExtendedControl(); این خطا رو میده



    Error 1 'WindowsFormsApplication2.ExtendedControl.Extended Control()' is inaccessible due to its protection level D:\WindowsFormsApplication2\WindowsFormsApplicatio n2\NotificationManager.cs 16 42 WindowsFormsApplication2






    ممنون میشم راهنماییم کنید بدجور لنگ اینم.

  2. #2
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

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

    بدلیل حجم زیاد از لینک زیر دانلود کنید

    http://s9.picofile.com/file/83272104...nTest.rar.html

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    ایران
    پست
    372

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    یا اگه کسی تونست این کد وی بی رو به دی ال ال تبدیل کنه ممنون میشم. برا همه ممکنه کاربرد داشته باشه. موضوش هم پیام Toast به سبک اندرویده

    بدلیل حجم زیاد از لینک زیر دانلود کنید

    http://s9.picofile.com/file/83272104...nTest.rar.html
    سلام

    کدهای شما رو تبدیل به DLL کردم

    ابتدا DLL رو به رفرنس ها اضافه نمایید (پروژه را بصورت x86 کامپایل کنید - دات نت 4.5)

    سپس بصورت زیر می توانید استفاده نمایید.

    using NotificationPlus;

    private void button1_Click(object sender, EventArgs e)
    {
    ToastNotifier Notification = new ToastNotifier();
    Notification.Show(this, "Test Notification", Color.Red, 2000);
    }


    فایل های ضمیمه فایل های ضمیمه

  4. #4

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    سلام دوستان وقت بخیر.
    ...
    که روی خط ExtendedControl displaycontrol = new ExtendedControl(); این خطا رو میده



    Error 1 'WindowsFormsApplication2.ExtendedControl.Extended Control()' is inaccessible due to its protection level D:\WindowsFormsApplication2\WindowsFormsApplicatio n2\NotificationManager.cs 16 42 WindowsFormsApplication2






    ممنون میشم راهنماییم کنید بدجور لنگ اینم.
    سازنده کلاس را public کنید.

  5. #5
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    سازنده کلاس را public کنید.
    دیشب خودم به این اشتباهم پی بردم (آبروم رفت)

  6. #6
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط 336699 مشاهده تاپیک
    سلام

    کدهای شما رو تبدیل به DLL کردم

    ابتدا DLL رو به رفرنس ها اضافه نمایید (پروژه را بصورت x86 کامپایل کنید - دات نت 4.5)

    سپس بصورت زیر می توانید استفاده نمایید.

    using NotificationPlus;

    private void button1_Click(object sender, EventArgs e)
    {
    ToastNotifier Notification = new ToastNotifier();
    Notification.Show(this, "Test Notification", Color.Red, 2000);
    }


    ممنون دوست عزیز بی زحمت سورس کد رو هم قرار بدید. تا یه سری تغییرات ظاهری مثل فونت رو هم انجام بدیم.
    آخرین ویرایش به وسیله رامین مرادی : پنج شنبه 03 خرداد 1397 در 08:24 صبح

  7. #7
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    یادم رفته بود منبع این سورس رو بزارم گفتم اینجا بنویسم.

    منبع: https://www.codeproject.com/Articles...cation-for-NET

  8. #8
    کاربر دائمی
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    ایران
    پست
    372

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    ممنون دوست عزیز بی زحمت سورس کد رو هم قرار بدید. تا یه سری تغییرات ظاهری مثل فونت رو هم انجام بدیم.
    کدها به زبان VB هستش
    در واقع من کدها رو تغییر ندادم همون سورس رو که شما ارسال کرده بودین رو تبدیل به DLL کردم (فقط یه فرم حذف شده)

    در مورد تغییر فونت هم
    فونت بستگی به کنترلی داره که
    Notification روی آن نمایش داده میشه

    الان فونت فرم هرچه باشه فونت پیام هم مثل فونت فرم خواهد بود.

  9. #9
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط 336699 مشاهده تاپیک
    کدها به زبان VB هستش
    در واقع من کدها رو تغییر ندادم همون سورس رو که شما ارسال کرده بودین رو تبدیل به DLL کردم (فقط یه فرم حذف شده)

    در مورد تغییر فونت هم
    فونت بستگی به کنترلی داره که
    Notification روی آن نمایش داده میشه

    الان فونت فرم هرچه باشه فونت پیام هم مثل فونت فرم خواهد بود.
    بعله راجب فونت دقت نکرده بودم. ممنون

    یه تغییر کوچیک هم بهتر بود اونم اینه که کاش نوتیفیکیشن وسط صفحه ظاهر میشد نه پایین. همچنین میزان شفافیت اون کادر.
    مقدار

    displaycontrol.Top = (Parent.Height - displaycontrol.Height)-50
    رو به

    displaycontrol.Top = (Parent.Height - displaycontrol.Height) / 2

    تغییر بدید تو ماژول NotificationManager

  10. #10

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    بعله راجب فونت دقت نکرده بودم. ممنون

    یه تغییر کوچیک هم بهتر بود اونم اینه که کاش نوتیفیکیشن وسط صفحه ظاهر میشد نه پایین. همچنین میزان شفافیت اون کادر.
    مقدار

    displaycontrol.Top = (Parent.Height - displaycontrol.Height)-50
    رو به

    displaycontrol.Top = (Parent.Height - displaycontrol.Height) / 2

    تغییر بدید تو ماژول NotificationManager

    کد سی شارپ که کار کنه ندارید؟
    این تغیرات چکار می کنه

  11. #11

    نقل قول: خطا در نمونه سازی از یک کلاس

    من تبدیل به سی شارپ کردم ولی اجرا نمیشه علت چیست
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar CS.rar‏ (49.0 کیلوبایت, 2 دیدار)

  12. #12
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط Helpco مشاهده تاپیک
    کد سی شارپ که کار کنه ندارید؟
    این تغیرات چکار می کنه
    کد سی شارپ ندارم. ولی همین کدی که تبدیل به دی ال ال شده رو ویرایش کردم خودم این تغییراتو اعمال کردم.
    این تغییرات باعث میشه بجای اینکه پیام تو پایین صفحه ظاهر بشه دقیقا وسط فرم ظاهر بشه.

  13. #13

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    کد سی شارپ ندارم. ولی همین کدی که تبدیل به دی ال ال شده رو ویرایش کردم خودم این تغییراتو اعمال کردم.
    این تغییرات باعث میشه بجای اینکه پیام تو پایین صفحه ظاهر بشه دقیقا وسط فرم ظاهر بشه.
    ممکن سورس بفرسید

  14. #14
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: خطا در نمونه سازی از یک کلاس

    تو پست های 2 و 3 لینک دانلود هست.پست دوم اصل کد هست. پست سوم دی ال ال که دوستمون زحمت تبدیلشو کشیدن

  15. #15

    نقل قول: خطا در نمونه سازی از یک کلاس

    کد اصلاح شده که وسط صفحه باز میشه مخواستم اگه هست

  16. #16

    نقل قول: خطا در نمونه سازی از یک کلاس

    نقل قول نوشته شده توسط 336699 مشاهده تاپیک
    سلام

    کدهای شما رو تبدیل به DLL کردم

    ابتدا DLL رو به رفرنس ها اضافه نمایید (پروژه را بصورت x86 کامپایل کنید - دات نت 4.5)

    سپس بصورت زیر می توانید استفاده نمایید.

    using NotificationPlus;

    private void button1_Click(object sender, EventArgs e)
    {
    ToastNotifier Notification = new ToastNotifier();
    Notification.Show(this, "Test Notification", Color.Red, 2000);
    }


    سلام
    اگه با X64 کامپایل بشه کار نمیکنه؟

تاپیک های مشابه

  1. سوال: خطا در زمان Serialize کردن یک کلاس از نوع DataContract
    نوشته شده توسط arman_Delta2002 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 09 مرداد 1396, 19:29 عصر
  2. مشکل در برنامه های چندفرمی با نمونه سازی از یک فرم
    نوشته شده توسط jprogramer در بخش C#‎‎
    پاسخ: 0
    آخرین پست: یک شنبه 20 آذر 1390, 09:17 صبح
  3. سوال: نمونه سازی از پارتهای کلاس جزئی
    نوشته شده توسط میلاد قاضی پور در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 15 تیر 1389, 12:08 عصر
  4. مشکل در ارث بری از یک کلاس آماده
    نوشته شده توسط bahar_engineer در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 16 تیر 1388, 15:05 عصر
  5. کمک در مورد استفاده از يک کلاس
    نوشته شده توسط bardia goharbin در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: سه شنبه 12 شهریور 1387, 15:55 عصر

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

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