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

نام تاپیک: ایجاد event handler پویا در حین اجرای برنامه

  1. #1

    ایجاد event handler پویا در حین اجرای برنامه

    درود
    توی برنامه ای ساده به مشکلی برخوردم دوستان در صورت امکان راهنمایی کنن.
    برنامه به این شکل هست که کاربر با استفاده از open file dialog تعدادی عکس رو انتخاب میکنه که این عکسا به ترتیب داخل فرم قرار داده میشن.هر موقع که روی هر یک از عکسا کلیک میشه،سایز عکس دو برابر بشه.
    مشکل من اینجاست که نمیتونم برای تک تک عکس ها event handler بسازم.تنها برای آخرین عکس افزوده شده میتونم این کارو انجام بدم
    ممنون میشم راهنمایی کنبد
    بدرود

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    نقل قول نوشته شده توسط CoDe_LeArNeR مشاهده تاپیک
    درود
    توی برنامه ای ساده به مشکلی برخوردم دوستان در صورت امکان راهنمایی کنن.
    برنامه به این شکل هست که کاربر با استفاده از open file dialog تعدادی عکس رو انتخاب میکنه که این عکسا به ترتیب داخل فرم قرار داده میشن.هر موقع که روی هر یک از عکسا کلیک میشه،سایز عکس دو برابر بشه.
    مشکل من اینجاست که نمیتونم برای تک تک عکس ها event handler بسازم.تنها برای آخرین عکس افزوده شده میتونم این کارو انجام بدم
    ممنون میشم راهنمایی کنبد
    بدرود
    سلام
    این عکس رو چطوری نمایش می‌دی؟ بالاخره یه کنترلی رو صفحه گذاشتی دیگه.
    یه eventhandler بنویس و هنگام load کنترل، رویداد کلیک رو وصل کن به اون eventhandler

    صبا صبوحی

  3. #3

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    سلام
    فکر کنم نتونستم درست توضیح بدم
    ببینید با یه button کاربر وصل میشه به open file dialog و عکس ها رو دونه دونه انتخاب میکنه و عکس ها به ترتیب رو فروم قرار داده میشن
    من میتونم event handler رو به آخرین عکسی که افزوده شده بدم ولی نمیتون برای همه ی عکس های اضافه شده این کهر رو انجام بدم
    ابزارش انجام این کارو نمیدونم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    نقل قول نوشته شده توسط CoDe_LeArNeR مشاهده تاپیک
    سلام
    فکر کنم نتونستم درست توضیح بدم
    ببینید با یه button کاربر وصل میشه به open file dialog و عکس ها رو دونه دونه انتخاب میکنه و عکس ها به ترتیب رو فروم قرار داده میشن
    من میتونم event handler رو به آخرین عکسی که افزوده شده بدم ولی نمیتون برای همه ی عکس های اضافه شده این کهر رو انجام بدم
    ابزارش انجام این کارو نمیدونم
    سلام
    بله، من هم گمان می‌کنم درست توضیح ندادی.
    شما به عکس نمی‌تونی Event Handler اختصاص بدی. Event Handler رو به یه کنترل اختصاص می‌دی که اون عکس رو نشون می‌ده.
    حالا قبل از این که من و دیگران بتونیم کمکی کنیم به چند پرسش پاسخ بده.
    1. تصاویر رو توسط چه کنترلی نشون می‌دی؟
    2. آیا کنترل‌ها از پیش ساخته شده هستن یا در حال اجرا تولیدشون می‌کنی.
    3. اون Event Handler رو چطوری به آخرین کنترل می‌دی؟

    صبا صبوحی

  5. #5

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه


    public partial class Form1 : Form
    {
    public int i = 0,x=5,y=5;
    PictureBox[] p1 = new PictureBox[100];
    PictureBox tp = new PictureBox();
    public Form1()
    {
    InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
    OpenFileDialog o1 = new OpenFileDialog();
    o1.Title = "انتخاب عکس";
    o1.Filter = "JPEG FILES|*.jpg|BITMAP FILES|*.Bitmap|ALL FILES|*.*";
    o1.InitialDirectory = "C:\\";
    p1[i] = new PictureBox();
    o1.ShowDialog();
    p1[i].Height = 50;
    p1[i].Width = 50;
    p1[i].ImageLocation = (o1.FileName);
    if (this.Width - x < 55)
    {
    x = 5;
    y += 55;
    }
    p1[i].Top = y;
    p1[i].SizeMode = PictureBoxSizeMode.StretchImage;
    p1[i].Left = x;
    p1[i].Click += new EventHandler(picture_click);
    tp = p1[i];
    x += 55;
    this.Controls.Add(p1[i]);
    i++;
    }

    private void picture_click(object sender, EventArgs e)
    {
    if (tp.Height == 50)
    {
    tp.Height = 100;
    tp.Width = 100;
    }
    else if (tp.Height == 100)
    {
    tp.Height = 50;
    tp.Width = 50;
    }
    }
    }
    فکر کنم کد رو ببینین بهتر متوجه میشین
    آخرین ویرایش به وسیله CoDe_LeArNeR : پنج شنبه 14 اسفند 1393 در 15:32 عصر

  6. #6

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه


    public partial class Form1 : Form { public int i = 0,x=5,y=5; PictureBox[] p1 = new PictureBox[100]; PictureBox tp = new PictureBox(); public Form1() { InitializeComponent(); }
    private void Form1_Load(object sender, EventArgs e) { }

    private void button1_Click(object sender, EventArgs e) { OpenFileDialog o1 = new OpenFileDialog(); o1.Title = "انتخاب عکس"; o1.Filter = "JPEG FILES|*.jpg|BITMAP FILES|*.Bitmap|ALL FILES|*.*"; o1.InitialDirectory = "C:\\Users\\ImPoSsIbLe\\Documents\\ViberDownloads" ; p1[i] = new PictureBox(); o1.ShowDialog(); p1[i].Height = 50; p1[i].Width = 50; p1[i].ImageLocation = (o1.FileName); if (this.Width - x < 55) { x = 5; y += 55; } p1[i].Top = y; p1[i].SizeMode = PictureBoxSizeMode.StretchImage; p1[i].Left = x; p1[i].Click += new EventHandler(picture_click); tp = p1[i]; x += 55; this.Controls.Add(p1[i]); i++; }

    private void picture_click(object sender, EventArgs e) { if (tp.Height == 50) { tp.Height = 100; tp.Width = 100; } else if (tp.Height == 100) { tp.Height = 50; tp.Width = 50; } }
    }
    فکر کنم کد رو ببینین بهتر متوجه میشین

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    سلام
    با دیدن این کد خیلی حرف دارم برای گفتم. من اینا رو می‌گم بلکه اشکال‌هات رو رفع کنی، و امیدوارم ناراحت نشی.
    1. امیدوارم به‌هم ریختگی این کد در اثر بد کپی شدن کد در این سایت باشه و خودت کد رو این‌شکلی نبینی.
    2. اون object sender که اولین پارامتر event handler هست، گمان می‌کنی برای چیه؟ برای اینه که اون tp سراسری رو نداشته باشی.

    var pictureBox = (PictureBox)sender;

    اون مشکلی که الان داری به همین دلیله، بجای استفاده از tp، این خط رو به سطر اول Event Handler اضافه کن، بعد از اون متغیر استفاده کن.
    3. گمان کنم تازه #C رو شروع کردی و قبلش هم VB کار می‌کردی. دوست من، متغیر سراسری زیاد و نادرست استفاده می‌کنی.
    Array روش قدیمی هست و دیگه خیلی کم استفاده می‌شه، روش‌های خیلی بهتر مثل List و Collection و Dictionary هست که مزایای زیادی داره.
    تو این مثال شما List گزینه‌ی خیلی بهتری هست.
    4. کد رو خیلی تو هم تو هم نوشتی، رعایت ترتیب هم برای خودت خیلی بهتره هم برای کسی که پس از شما قراره کد رو بخونه.
    مثلاً وسط تعریف خواص pictureBox اومدی فرم باز کردی. خوب یا قبلش باز کن یا بعدش.



    و در آخر خیلی خیلی جدی توصیه می‌کنم که برنامه‌ی Resharper رو بگیری و نصب کنی، جلوی خیلی از اشتباه‌های سهوی رو می‌گیره.
    من که سال‌های زیادی هست که حرفه‌ای برنامه‌نویسی می‌کنم خیلی به دردم می‌خوره، برای تازه‌کارها گمان می‌کنم از نون شب واجب‌تر باشه.

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

    صبا صبوحی

  8. #8

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    سلام
    بی نهایت ممنونم واقعا لطف کردین
    نه تنها دلیلی برای ناراحت شدن نیست،بلکه واجبه بی نهایت تشکر کنم.
    من کلا 5 ماه بیشتر نیست برنامه نویسی کار میکنم و 1 ماه بیشتر نیست C#‎ کار میکنم + 1 هفته بیشتر نیست با فرم کار میکنم.
    بازم تشکر میکنم

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    تهران
    پست
    1,629

    نقل قول: ایجاد event handler پویا در حین اجرای برنامه

    نقل قول نوشته شده توسط CoDe_LeArNeR مشاهده تاپیک
    سلام
    بی نهایت ممنونم واقعا لطف کردین
    نه تنها دلیلی برای ناراحت شدن نیست،بلکه واجبه بی نهایت تشکر کنم.
    من کلا 5 ماه بیشتر نیست برنامه نویسی کار میکنم و 1 ماه بیشتر نیست C#‎‎ کار میکنم + 1 هفته بیشتر نیست با فرم کار میکنم.
    بازم تشکر میکنم
    سلام
    خواهش می‌کنم، کار مهمی نکردم.
    اما حتماً برنامه‌ی Resharper رو دانلود و نصب کن. خیلی بهت کمک می‌کنه. نصبش هم خیلی راحته، محیط VS رو کاملاً در دست می‌گیره و
    جلوی تعداد زیادی از اشتباه‌های متنی، و منطقی و حتا بدخطی رو می‌گیره.
    اینجا اجازه اشاره به این لینک‌ها رو نداریم. تو گوگل بزن «دانلود Resharper»

    صبا صبوحی

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

  1. سوال: ایجاد Tab توسط کاربر در حین اجرای برنامه
    نوشته شده توسط ro3vayedel در بخش C#‎‎
    پاسخ: 12
    آخرین پست: یک شنبه 02 آذر 1393, 07:35 صبح
  2. پاسخ: 3
    آخرین پست: دوشنبه 11 بهمن 1389, 17:24 عصر
  3. پاسخ: 3
    آخرین پست: دوشنبه 20 اسفند 1386, 01:21 صبح
  4. ساخت باتون در حین اجرای برنامه
    نوشته شده توسط حسن در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 15 آذر 1383, 01:21 صبح
  5. ایجاد ارتباط بین Grid و Data حین اجرای برنامه
    نوشته شده توسط BehnamPro در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 5
    آخرین پست: شنبه 13 تیر 1383, 18:57 عصر

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

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