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

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

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

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

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

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



    ContextMenu cm = new System.Windows.Forms.ContextMenu();
    MenuItem mi = new MenuItem("Print");
    public void set()
    {
    TabPage addedTabPage = new TabPage("صفحه اول");
    tabControl_webBrowsers.TabPages.Add(addedTabPage);
    addedTabPage.AutoScroll = true;
    PictureBox _P = new PictureBox();
    _P.Height = 842;
    _P.Width = 595;
    _P.SizeMode = PictureBoxSizeMode.StretchImage;
    _P.Image =Image.FromFile(path);
    _P.MouseDown += _P_MouseDown;
    cm.MenuItems.Add(mi);
    mi.Click +=new EventHandler(mi_Click);
    addedTabPage.Controls.Add(_P);
    }
    void _P_MouseDown(object sender, MouseEventArgs e)
    {
    if(e.Button==System.Windows.Forms.MouseButtons.Rig ht)
    {
    cm.Show((Control)sender,e.Location);
    }
    }
    private void mi_Click(object sender, EventArgs e)
    {
    //تصویر اون پیکجر باکس رو چجوری اینجا دریافت کنم؟
    }


  2. #2

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

    نیازی به MouseDown نیست. contextmenustrip پیکچرباکس را برابر با منویی که ایجاد کردید بگذارید. در رویداد کلیک منو، SourceControl کنترل فراخواننده منواستریپ خواهد بود.
    https://msdn.microsoft.com/en-us/lib...cecontrol.aspx

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

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

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    نیازی به MouseDown نیست. contextmenustrip پیکچرباکس را برابر با منویی که ایجاد کردید بگذارید. در رویداد کلیک منو، SourceControl کنترل فراخواننده منواستریپ خواهد بود.
    https://msdn.microsoft.com/en-us/lib...cecontrol.aspx
    خب صحیح برای زیر منو ها چجوری رویدادشو ست کنم؟

  4. #4

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

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

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

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

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

  6. #6

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

            ContextMenu cm = new System.Windows.Forms.ContextMenu();
    MenuItem mi = new MenuItem("Print");
    public void set()
    {
    TabPage addedTabPage = new TabPage("صفحه اول");
    tabControl_webBrowsers.TabPages.Add(addedTabPage);
    addedTabPage.AutoScroll = true;
    PictureBox _P = new PictureBox
    {
    Height = 842,
    Width = 595,
    SizeMode = PictureBoxSizeMode.StretchImage,
    ContextMenu = cm,
    Image = Image.FromFile(@"...")
    };

    cm.MenuItems.Add(mi);
    mi.Click += new EventHandler(mi_Click);
    addedTabPage.Controls.Add(_P);
    }

    private void mi_Click(object sender, EventArgs e)
    {
    PictureBox pb = cm.SourceControl as PictureBox;
    //...
    }

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

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

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

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



    public void Set(){
    TabPage addedTabPage1 = new TabPage("صفحه دوم");
    tabControl_webBrowsers.TabPages.Add(addedTabPage1) ;
    addedTabPage1.AutoScroll = true;
    PictureBox _P1 = new PictureBox();
    _P1.Height = 842;
    _P1.Width = 595;
    _P1.SizeMode = PictureBoxSizeMode.StretchImage;
    _P1.Image = Image.FromFile(path);
    _P1.MouseDown += _P_MouseDown;
    cm.MenuItems.AddRange(new MenuItem[]{ mi1,mi2});
    mi1.Click += new EventHandler(mi1_Click);
    addedTabPage1.Controls.Add(_P1);


    TabPage addedTabPage2 = new TabPage("صفحه دوم");
    tabControl_webBrowsers.TabPages.Add(addedTabPage2) ;
    addedTabPage2.AutoScroll = true;
    PictureBox _P2 = new PictureBox();
    _P2.Height = 842;
    _P2.Width = 595;
    _P2.SizeMode = PictureBoxSizeMode.StretchImage;
    _P2.Image = Image.FromFile(path);
    _P2.MouseDown += _P_MouseDown;
    cm.MenuItems.AddRange(new MenuItem[]{ mi1,mi2});
    mi1.Click += new EventHandler(mi1_Click);
    addedTabPage2.Controls.Add(_P2);
    }


    void _P_MouseDown(object sender, MouseEventArgs e)
    {
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
    cm.Show((Control)sender, e.Location);
    }
    }
    void mi1_Click(object sender, EventArgs e)
    {

    PictureBox p = cm.SourceControl as PictureBox;
    MessageBox.Show(p.Name);
    pictureBox1.Image = p.Image;


    System.Drawing.Printing.PrintDocument myPrintDocument1 = new System.Drawing.Printing.PrintDocument();
    PrintDialog myPrinDialog1 = new PrintDialog();
    PaperSize ps = new PaperSize("A4", 827, 1170);
    myPrintDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(prin tDocument1_PrintPage);
    myPrintDocument1.DefaultPageSettings.PaperSize = ps;
    myPrinDialog1.Document = myPrintDocument1;
    if (myPrinDialog1.ShowDialog() == DialogResult.OK)
    {
    myPrintDocument1.Print();
    }
    }
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
    Image i = pictureBox1.Image;


    float newWidth = i.Width * 100 / i.HorizontalResolution;
    float newHeight = i.Height * 100 / i.VerticalResolution;


    float widthFactor = newWidth / e.PageBounds.Width;
    float heightFactor = newHeight / e.PageBounds.Height;


    if (widthFactor > 1 | heightFactor > 1)
    {
    if (widthFactor > heightFactor)
    {
    newWidth = newWidth / widthFactor;
    newHeight = newHeight / widthFactor;
    }
    else
    {
    newWidth = newWidth / heightFactor;
    newHeight = newHeight / heightFactor;
    }
    }
    e.Graphics.DrawImage(i, 0, 0, (int)newWidth, (int)newHeight);
    }


  8. #8

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

    متد Click را دو بار به رویداد نسبت دادید خط 11و12 در 25و26 تکرار شده که نیاز به تکرار نیست.

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

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

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    متد Click را دو بار به رویداد نسبت دادید خط 11و12 در 25و26 تکرار شده که نیاز به تکرار نیست.
    ممنون اصلا توجهی نکرده بودم به اون خخخخ

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

  1. سوال: دسترسی به خواص چک باکسی که در زمان اجرا ساخته شده است؟
    نوشته شده توسط moeinih در بخش C#‎‎
    پاسخ: 1
    آخرین پست: یک شنبه 21 آبان 1391, 16:01 عصر
  2. سوال: دسترسی به selecteditem مربوط به dropdownlist ای که در زمان اجرا مقدار دهی شده
    نوشته شده توسط mohammadyaser در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: دوشنبه 24 بهمن 1390, 20:17 عصر
  3. سوال: انتساب رویداد به کنترلی که در زمان اجرا ساخته شده است
    نوشته شده توسط hamhik در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: پنج شنبه 16 دی 1389, 12:41 عصر
  4. پاسخ: 3
    آخرین پست: یک شنبه 10 مرداد 1389, 23:29 عصر
  5. unload کردن imagebox هائی که در زمان اجرا ساخته می شوند
    نوشته شده توسط mehdi_RM در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: چهارشنبه 26 دی 1386, 16:15 عصر

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

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