برای مشاهده مفیدترین ارسال در این موضوع اینجا کلیک کنید

صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 از مجموع 15
Like Tree13نفر پسندیدند

موضوع: ایجاد کنترل (مثل دکمه) بصورت پویا در سی شارپ

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر

    ایجاد کنترل (مثل دکمه) بصورت پویا در سی شارپ

    سلام، وقت بخیر
    انشالله حال دوستان خوب باشه
    از خدمتتون سوالی داشتم و اینکه ; ما داریم برنامه ای مینویسیم در مورد کار با تصاویر در فرم و در قسمتی از اون دچار مشکل شدیم و اون اینه که :
    ما باید تصاویری رو کنار فرم قرار بدیم تا وقتی روی اونها کلیک کردیم بیاد تصویر رو انتخاب کنه و و وقتی کاربر اومد جایی غیر از تصاویر کلیک کرد اون تصویر در اون نقطه نمایش داده بشه الان ما گیرمون سر اینه که چطوری بتونیم اون تصویری که انتخاب شده رو در نقطه ای که کاربر تعیین کرده و جایی غیر از تصاویر هست قرار بده و دوم اینکه تصویر باید در جایی به هنگام انتخاب شدن ذخیره بشه اما نمیدونیم چطوری ذخیرش کنیم ، ما اگه بخوایم از lable استفاده کنیم بصورت رشته در خودش ذخیره میکنه و این به درد ما نمیخوره ، اگه بخوایم در pictureBox ذخیره کنیم موقع انتخاب PictureBox حتما باید تصویری براش انتخاب کنیم که اینم پس مد نظرمون نخواهد بود ، الان مشکل ما فعلا این دوتاست
    ممنون میشم راهنمایی بفرمایین
    بااحترام

    موضوعات مشابه:
    آرامش محصول تفکر نیست! آرامش هنر نیندیشیدن به انبوه مسائلیست که ارزش فکر کردن ندارد...

  2. #2
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    35
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط NIIT نمایش پست ها
    سلام، وقت بخیر
    انشالله حال دوستان خوب باشه
    از خدمتتون سوالی داشتم و اینکه ; ما داریم برنامه ای مینویسیم در مورد کار با تصاویر در فرم و در قسمتی از اون دچار مشکل شدیم و اون اینه که :
    ما باید تصاویری رو کنار فرم قرار بدیم تا وقتی روی اونها کلیک کردیم بیاد تصویر رو انتخاب کنه و و وقتی کاربر اومد جایی غیر از تصاویر کلیک کرد اون تصویر در اون نقطه نمایش داده بشه الان ما گیرمون سر اینه که چطوری بتونیم اون تصویری که انتخاب شده رو در نقطه ای که کاربر تعیین کرده و جایی غیر از تصاویر هست قرار بده و دوم اینکه تصویر باید در جایی به هنگام انتخاب شدن ذخیره بشه اما نمیدونیم چطوری ذخیرش کنیم ، ما اگه بخوایم از lable استفاده کنیم بصورت رشته در خودش ذخیره میکنه و این به درد ما نمیخوره ، اگه بخوایم در pictureBox ذخیره کنیم موقع انتخاب PictureBox حتما باید تصویری براش انتخاب کنیم که اینم پس مد نظرمون نخواهد بود ، الان مشکل ما فعلا این دوتاست
    ممنون میشم راهنمایی بفرمایین
    بااحترام
    سلام .
    نمونه ای نیست ؟ مثلا یه برنامه مشابه ؟
    چیزی که به ذهن من میرسه با خوندن این توضیحات قضیه ساخت کنترل ها بصورت داینامیک هست . اگر این باشه شما میتونید از پیکچر باکس یا هر کنترلی (مثلا Button ) که بشه برای نمایش تصویر ازش استفاده کرد استفاده کنید . نکتشم اینه که هرجا کلیک که کردید این کنترل تو اون مکان بصورت داینامیک ساخته بشه و پراپرتی عکسش ست بشه .
    در مورد ذخیره شدن تصویر یعنی چی ؟ یعنی اگه برنامه رو برای بار بعدی باز کردید تصاویر به همون صورتی باشن که قبلا مثلا قرار داده شدن ؟ اگه آره میتونید خیلی سریع از قابلیت ذخیره سازی /لود دات نت در سی شارپ استفاده کنید . برای اینکار هر وقت خواستید چیزی رو سیو کنید یا لود کنید از
    Properties.Settings.Default

    استفاده کنید .
    مثلا برای ذخیره کردن حالت یه رادیو باتن (مثلا rdbtnBackSide ) اینطور مینویسیم :

    Properties.Settings.Default.BackSideCheck = rdbtnBackSide.Checked;
    Properties.Settings.Default.Save();

    برای لود کردن هم
    rdbtnBackSide.Checked = Properties.Settings.Default.BackSideCheck;


    قبل از اینها نیاز به متغییر دارید که مقادیرتون رو برای سیو کردن توی اون بریزید (اینجا اون متغییر ما اسمش BackSideCheck هست . ) . برای ساختن این نوع متغییرها دو راه وجود داره یک راهش از طریق پراپرتی Application Settings هست که تمام کنترلها دارن . میتونید روبری property Binding که زیربخش همین ApplicationSettings هست کلیک کنید و هر کدوم از خصیصه هایی که میخوایید حالتش و یا مقدارش سیو بشه روبروش یه متغییر براش در نظر بگیرید .

    راه دوم هم اینه روی پروژتون راست کلیک کنید و Propertise رو انتخاب کنید . بعد تب Setting رو انتخاب کنید حالا اینجا هرچندتا متغییر از هر نوعی که دلتون میخواد میتونید بنویسید . حالا هر وقت توی کد برنامتون بنویسید Properties.Settings.Default و بعد یه . بزنید این متغییرها بهتون نمایش داده میشه و میتونید ازشون برای سیو / لود کردن استفاده کنید .

    اگه از این راه نمیخوایید برید میتونید خودتون مختصات و پراپرتیهای مورد نظرتون رو توی فایل سیو کنید و هر بار موقع اجرای برنامه اون چیزی رو که میخوایید لود کنید .

    NIIT این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  3. #3
    Moderator
    تاریخ عضویت
    2011 June
    محل سکونت
    بابل
    سن
    33
    ارسال ها
    84
    تشکر
    9
    تشکر شده 145 بار در 68 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط NIIT نمایش پست ها
    سلام، وقت بخیر
    انشالله حال دوستان خوب باشه
    از خدمتتون سوالی داشتم و اینکه ; ما داریم برنامه ای مینویسیم در مورد کار با تصاویر در فرم و در قسمتی از اون دچار مشکل شدیم و اون اینه که :
    ما باید تصاویری رو کنار فرم قرار بدیم تا وقتی روی اونها کلیک کردیم بیاد تصویر رو انتخاب کنه و و وقتی کاربر اومد جایی غیر از تصاویر کلیک کرد اون تصویر در اون نقطه نمایش داده بشه الان ما گیرمون سر اینه که چطوری بتونیم اون تصویری که انتخاب شده رو در نقطه ای که کاربر تعیین کرده و جایی غیر از تصاویر هست قرار بده و دوم اینکه تصویر باید در جایی به هنگام انتخاب شدن ذخیره بشه اما نمیدونیم چطوری ذخیرش کنیم ، ما اگه بخوایم از lable استفاده کنیم بصورت رشته در خودش ذخیره میکنه و این به درد ما نمیخوره ، اگه بخوایم در pictureBox ذخیره کنیم موقع انتخاب PictureBox حتما باید تصویری براش انتخاب کنیم که اینم پس مد نظرمون نخواهد بود ، الان مشکل ما فعلا این دوتاست
    ممنون میشم راهنمایی بفرمایین
    بااحترام

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

    یادمه مهندس حسامی فر تو ذخیره و بازیابی یه پروژه شبیه این داده بودند که قرار بود برنامه ای باشه که با استفاده از اون یه نقشه ی ماهواره ای رو باز کنه و اجازه بده کاربر از روش وکتور اون تصویر رو بسازه، مثلا محل خیابانها، اسماشون و .... که این ها هم باید به صورت لاگ در کنار برنامه ذخیره بشه و قابلیت بازیابی داشته باشه. شما مثل برنامه نقاشی ویندوز چند تا ابزار (مثل میدان، خیابان و کوچه، برچسب و ...) به کاربر می دادید تا اون هم با اونا تصویرش رو بسازه.
    نمی دونم توضیحاتم چقدر مناسب بود. ولی اگه فکر کردید می تونم کمک کنم، در خدمتم.

    Hossein و NIIT این را میپسندند
    بی تو هزار صحبت ناگفته بر دلم *** آتش به جان زد و درمان نیامدم


  4. #4
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    در ابتدا از توضیحات مفیدتون ممنون

    نقل قول نوشته اصلی توسط Efair نمایش پست ها
    مثلا شی ایندکس شماره ی فلان، نقطه ی 0 و 0ش در مختصات فلان قرار گرفته و بعد اونو در اون مختصات قرار بدید.
    خوب الان شما میفرمایین یه چیزی رو انتخاب کنه و و در جایی که کاربر میخواد قرار بده ، الان دقیقا مشکل من اینه که چطوری اون جایی که کاربر انتخاب کرده رو پیدا کنه و تشخیص بده که الان باید تصویر رو در اونجا بذاره؟و اینکه من خودم ایده ای دارم منتهی نمیدونم درسته یا نه و اون اینه که : الان با خودم میگم وقتی بخواد چک کنه که اونجایی که تصاویر پیش فرض هستن دیگه حق گذاشتن تصویر رو در اونجا نداره بیام همه مختصاتهایی که در اونجا تعیین کردمو براش شرط بذارم که اگه بود حق نداری قرارش بدی اما این خیلی کد زیادی میخواد و بنظرم بشه مختصرتر به جواب رسید و اینکه مشکل بعدیم همونطور که گفتم سر اینه که به برنامه چطوری بفهمونم که وقتی کاربر جای مورد نظر کلیک کرد مختصات اون جای مورد نظر رو در بیاره تا تصویر رو بذاره؟

    نقل قول نوشته اصلی توسط Efair نمایش پست ها
    مثل برنامه نقاشی ویندوز چند تا ابزار (مثل میدان، خیابان و کوچه، برچسب و ...) به کاربر می دادید تا اون هم با اونا تصویرش رو بسازه.
    بله الان دقیقا برنامه ما هم همینه......

    الان این برناهم ای هست که تا اینجا پیش بردیمفکر کنم برنامه رو ببینین بیشتر متوجه منظور بنده بشین)
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace DrawImage
    {
    public partial class Form1 : Form
    {
    private Image a;
    private Image b;
    private Image c;
    private Image d;
    private Image f;
    public Form1()
    {
    InitializeComponent();
    a = new Bitmap("a.jpg");
    b = new Bitmap("b.jpg");
    c = new Bitmap("c.jpg");
    d = new Bitmap("d.jpg");
    f = new Bitmap("f.jpg");

    }
    protected override void OnPaint(PaintEventArgs e)
    {
    Graphics g = e.Graphics;

    Rectangle r = new Rectangle(0,0,100,100);
    g.DrawImage(a, r);

    Rectangle r1 = new Rectangle(0,120,100,100);
    g.DrawImage(b,r1);

    Rectangle r2 = new Rectangle(0,240,100,100);
    g.DrawImage(c,r2);

    Rectangle r3 = new Rectangle(0,360,100,100);
    g.DrawImage(d,r3);

    Rectangle r4 = new Rectangle(0,480,100,100);
    g.DrawImage(f, r4);

    }
    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
    if ((e.X>0&&e.X<100)&&(e.X>0&&e.Y<100))
    {
    //
    }
    }
    }
    }


    بااحترام،NIIT

    goldreal این نویسه را میپسندد.
    آرامش محصول تفکر نیست! آرامش هنر نیندیشیدن به انبوه مسائلیست که ارزش فکر کردن ندارد...

  5. #5
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    35
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    1 امتياز مثبت از 1 راي
    آيا اين پست براي شما سودمند بود؟ بله | خیر
    برای شرط گذاشتن فکر میکنم یه ناحیه ای رو در نظر بگیرید برای این کار خوب باشه بعد مثلا با استفاده از رویداد MouseMove چک کنید وارد اون ناحیه شدید یا نه اگر بله مثلا یه ارور یا هر کار دیگه ای که بنظرتون بهتر هست میتونید انجام بدید . میتونید عکسها رو روی یک پنل قرار بدید (یا گروپ باکس ) و اینطور این بخش رو از بخش اصلی فرم که مثلا بعنوان زمینه فعال برای کلیک شدن درنظر گرفتید جدا کنید . برای گرفتن مختصات اونجای مورد نظر هم از رویداد MouseClick باید استفاده کنید ( که کردید ) منتها اگر میخوایید تمام کنترلهای روی فرمتون هم به این رویداد واکنش نشون بدن باید این رویداد رو براشون تعریف کنید . ( مثلا یه تابع برای فرم نوشتید برید تو رویداد MouseClick مثلا کنترل x و اون تابعی که برای رویداد ماوس کلیک نوشتید رو برای این انتخاب کنید و دیگه یه تابع دیگه براش ننویسید . ) (اگر هم نیاز به اطلاعات اضافه بود که موس روی چه کنترلی قرار گرفت یا مختصات داده شده برگرفته از کدوم کنترل هست میتونید تو همون تابع از sender و پراپرتی GetType().Name استفاده کنید برای در آوردن نوع کنترلتون و بعد با cast کردن خیلی راحت هرچیزی که میخواید رو یکجا داشته باشید )

    ------
    برای ارجاعات آینده : نمونه برنامه ای که توش مطالب بالا پیاده شده- برای درک بهتر مطالب گفته شده اینجا (مطالبی از قبیل: پیاده سازی یه Hotspot روی فرم- شناسایی کنترلهایی روی فرم (اونهایی که روشون کلیک شده) و استفاده از اون کنترلها و خاصیتهاشون در runtime و بصورت پویا...)
    - پ.ن: در مورد تاپیک و نحوه استفاده از این کد :
    تو برنامه مورد نظرتون میتونید یه متغییر داشته باشید برای مشخص کردن ناحیه هایی که میشه تصویر یا عکس رو قرار داد و ناحیه هایی که نمیشه بطوریکه وقتی ماوس وارد ناحیه ممنوعه میشه این متغییر مقدار نادرست بگیره و در سایر اوقات مقدار درست . بعد در برنامتون هر وقت خواستید عکسی رو جایی قرار بدید فقط کافیه اون متغییر رو چک کنید .- میتونید بجای استفاده از یک متغییر برای چک کردن . چک کنید هر وقت وارد ناحیه ممنوعه شدید رویداد کلیک غیرفعال بشه ( یا رویدادی که عکس رو روی فرم یا صفحتون قرار میده ) و با رفتن در ناحیه بدون مشکل ,دوباره رویداد کلیک (یا هر رویدادی که کار اصلی رو براتون انجام میده ) فعالش کنید .
    میتونید با استفاده از این کد ,مدیریت کاملی روی کنترلهای موجود روی صفحتون داشته باشید و بصورت پویا در هر زمانی که خواستید ویژگیهای هر کنترل ( محل قرارگیری - عکس و ... ) رو تغییر بدید و .....
    نحوه و چگونگی استفاده دیگه بخودتون و طرز فکر و الگوریتموتون بستگی داره


    //in the name of GOD
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Threading;

    namespace get_current_mouse_click
    {
    public partial class Form1 : Form
    {
    Rectangle HotSpotField;
    Graphics graphic;
    public Form1()
    {
    InitializeComponent();
    HotSpotField = new Rectangle(new Point(7, 220), new Size(263, 40));
    graphic = this.CreateGraphics();
    graphic.DrawRectangle(new Pen(Color.Red, 3), HotSpotField);
    }

    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {

    switch (sender.GetType().Name)
    {
    case "PictureBox":
    listBox1.Items.Add(((PictureBox)sender).Name+ ":" + e.Location);
    break;

    default:
    listBox1.Items.Add((sender).GetType().Name + ":" + e.Location);
    break;
    }

    }

    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {

    if ( !((e.X >= HotSpotField.Left && e.X <= HotSpotField.Right) && (e.Y >= HotSpotField.Top && e.Y <=HotSpotField.Bottom)) )
    {
    listBox1.Items.Add("OK - out of Hotzone");
    SetTextAndColor("OK", Color.LightGreen);

    }
    else
    {
    listBox1.Items.Add("Hotspot:"+e.Location);
    graphic.DrawRectangle(new Pen(Color.Red, 3), HotSpotField);
    Thread.Sleep(50);
    graphic.DrawRectangle(new Pen(this.BackColor, 3), HotSpotField);
    SetTextAndColor("NoK", Color.Red);
    }

    this.Text = "X= " + e.X.ToString() + " Y= " + e.Y.ToString() + "| " + "HotSpotArea left= " + HotSpotField.Left.ToString() + " HotSpotArea right= " + HotSpotField.Right.ToString() + " HotSpotArea top = " + HotSpotField.Top.ToString() + " HotSpotArea bottom= " + HotSpotField.Bottom.ToString() + " HotSpotArea X= " + HotSpotField.X.ToString() + " HotSpotArea Y= " + HotSpotField.Y.ToString();
    }

    private void SetTextAndColor(string str, Color color)
    {
    textBox1.Text = str;
    textBox1.BackColor = color;
    }






    }
    }



    پروژه نمونه :
    پرشین گیگ - دانلود - get current mouse click.zip

    ویرایش توسط Hossein : 26th December 2011 در ساعت 03:18 PM دلیل: اضافه کردن کد برای توضیح بیشتر
    NIIT این نویسه را میپسندد.
    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




  6. #6
    Moderator
    تاریخ عضویت
    2011 June
    محل سکونت
    بابل
    سن
    33
    ارسال ها
    84
    تشکر
    9
    تشکر شده 145 بار در 68 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط NIIT نمایش پست ها
    در ابتدا از توضیحات مفیدتون ممنون


    خوب الان شما میفرمایین یه چیزی رو انتخاب کنه و و در جایی که کاربر میخواد قرار بده ، الان دقیقا مشکل من اینه که چطوری اون جایی که کاربر انتخاب کرده رو پیدا کنه و تشخیص بده که الان باید تصویر رو در اونجا بذاره؟و اینکه من خودم ایده ای دارم منتهی نمیدونم درسته یا نه و اون اینه که : الان با خودم میگم وقتی بخواد چک کنه که اونجایی که تصاویر پیش فرض هستن دیگه حق گذاشتن تصویر رو در اونجا نداره بیام همه مختصاتهایی که در اونجا تعیین کردمو براش شرط بذارم که اگه بود حق نداری قرارش بدی اما این خیلی کد زیادی میخواد و بنظرم بشه مختصرتر به جواب رسید و اینکه مشکل بعدیم همونطور که گفتم سر اینه که به برنامه چطوری بفهمونم که وقتی کاربر جای مورد نظر کلیک کرد مختصات اون جای مورد نظر رو در بیاره تا تصویر رو بذاره؟


    بله الان دقیقا برنامه ما هم همینه......

    الان این برناهم ای هست که تا اینجا پیش بردیمفکر کنم برنامه رو ببینین بیشتر متوجه منظور بنده بشین)
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace DrawImage
    {
    public partial class Form1 : Form
    {
    private Image a;
    private Image b;
    private Image c;
    private Image d;
    private Image f;
    public Form1()
    {
    InitializeComponent();
    a = new Bitmap("a.jpg");
    b = new Bitmap("b.jpg");
    c = new Bitmap("c.jpg");
    d = new Bitmap("d.jpg");
    f = new Bitmap("f.jpg");

    }
    protected override void OnPaint(PaintEventArgs e)
    {
    Graphics g = e.Graphics;

    Rectangle r = new Rectangle(0,0,100,100);
    g.DrawImage(a, r);

    Rectangle r1 = new Rectangle(0,120,100,100);
    g.DrawImage(b,r1);

    Rectangle r2 = new Rectangle(0,240,100,100);
    g.DrawImage(c,r2);

    Rectangle r3 = new Rectangle(0,360,100,100);
    g.DrawImage(d,r3);

    Rectangle r4 = new Rectangle(0,480,100,100);
    g.DrawImage(f, r4);

    }
    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
    if ((e.X>0&&e.X<100)&&(e.X>0&&e.Y<100))
    {
    //
    }
    }
    }
    }

    [/CSHARP]
    بااحترام،NIIT

    این برنامه ایه که همین الان به عنوان نمونه نوشتم. امیدوارم منظورمو برسونه، و بتونه کمکتون کنه.


    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    Button[] button = new Button[3];
    static string text = "";
    ArrayList list = new ArrayList();
    int sizeX=195, sizeY=96;
    private void Form1_Load(object sender, EventArgs e)
    {
    for (int i = 0; i < button.Length; i++)
    {
    button[i] = new Button();
    button[i].Location = new Point(3, (i * sizeY) + 3);
    button[i].Name = "button"+i;
    button[i].Size = new Size(sizeX, sizeY);
    button[i].TabIndex = 0;
    button[i].Text = "button"+i;
    button[i].UseVisualStyleBackColor = true;
    button[i].Click += new EventHandler(this.button_Click);
    panel2.Controls.Add(button[i]);
    }
    }


    private void button_Click(object sender, EventArgs e)
    {
    text = ((Button)sender).Text;
    }
    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
    if ((e.Location.X > panel1.Size.Width - sizeX || e.Location.Y > panel1.Size.Height - sizeY)||text == "")
    return;
    for (int i = 0; i < list.Count; i++)
    {
    Button temp=(Button) list[i];
    if ((e.Location.X >temp.Location.X - sizeX && e.Location.X < temp.Location.X + sizeX && e.Location.Y > temp.Location.Y - sizeY && e.Location.Y < temp.Location.Y) || (e.Location.X > temp.Location.X - sizeX && e.Location.X < temp.Location.X && e.Location.Y > temp.Location.Y && e.Location.Y < temp.Location.Y + sizeY))
    return;
    }
    Button b = new Button();
    b.Location = new Point(e.Location.X, e.Location.Y);
    b.Name = "B" + list.Count; ;
    b.Size = new Size(sizeX, sizeY);
    b.TabIndex = 0;
    b.Text = text;
    b.UseVisualStyleBackColor = true;
    panel1.Controls.Add(b);
    list.Add(b);
    }
    }


    از اینجا هم می تونید کل پروژه رو دانلود بفرمایید.

    ویرایش توسط Efair : 24th December 2011 در ساعت 08:22 AM
    Hossein, NIIT و Adept این نویسه را میپسندند.
    بی تو هزار صحبت ناگفته بر دلم *** آتش به جان زد و درمان نیامدم


  7. #7
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    مثالتون خیلی جالب و مفید حال بنده بود ، واقعا از تلاشتون بابت کمک ممنونم

    فقط سوالی از خدمتتون داشتم و اینکه:
    برنامتونو اجرا گرفتم ، خیلی قشنگ دکمه ها رو در جاهای معین شده نمایش میداد اما بعد از یک دور استفاده از دکمه ها دیگه همون کا رو دوباره تکرار نمیکرد و اینکه آیا میشه روی دکمه ها تصویر انداخت که بشه از همین طریق کار رو انجام داد؟
    بااحترام

    Efair این نویسه را میپسندد.
    آرامش محصول تفکر نیست! آرامش هنر نیندیشیدن به انبوه مسائلیست که ارزش فکر کردن ندارد...

  8. #8
    Moderator
    تاریخ عضویت
    2011 June
    محل سکونت
    بابل
    سن
    33
    ارسال ها
    84
    تشکر
    9
    تشکر شده 145 بار در 68 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    دوست عزیزم، اول سوال دوم:
    می شه رو دکمه ها عکس گذاشت، به هیچ وجه هم کار سختی نیست. امکانش از طریق Properties وجود داره.
    دوم سوال اول :
    برنامه من بخاطر اینکه دکمه ها روی هم نباشن، وقتی یک دکمه رو گذاشتید، اطراف اون دکمه تا جایی که اگه دکمه ی دیگه ای قرار بگیره روی این دکمه است رو غیر فعال می کنه و اینکه اگه گوشه ی پایین صفحه و گوشه ی راست صفحه به اندازه ی طول و عرض یک دکمه غیر فعال شده چون اگه دکمه ای قرار بگیره اون دکمه بیرون از صفحه میفته.
    خوشحالم که به کارت اومده.
    موفق باشی و پیروز
    شب و روزت خوش

    Hossein و NIIT این را میپسندند
    بی تو هزار صحبت ناگفته بر دلم *** آتش به جان زد و درمان نیامدم


  9. #9
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    گرگان
    ارسال ها
    1,170
    تشکر
    62
    تشکر شده 1,587 بار در 809 پست
    نوشته های وبلاگ
    49


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    نقل قول نوشته اصلی توسط efair نمایش پست ها
    اول سوال دوم:
    می شه رو دکمه ها عکس گذاشت، به هیچ وجه هم کار سختی نیست. امکانش از طریق properties وجود داره.
    دوم سوال اول :
    برنامه من بخاطر اینکه دکمه ها روی هم نباشن، وقتی یک دکمه رو گذاشتید، اطراف اون دکمه تا جایی که اگه دکمه ی دیگه ای قرار بگیره روی این دکمه است رو غیر فعال می کنه و اینکه اگه گوشه ی پایین صفحه و گوشه ی راست صفحه به اندازه ی طول و عرض یک دکمه غیر فعال شده چون اگه دکمه ای قرار بگیره اون دکمه بیرون از صفحه میفته.
    از باب توضیحاتتون بینهایت سپاسگزارم



    نقل قول نوشته اصلی توسط master نمایش پست ها
    نمونه برنامه ای که توش مطالب بالا پیاده شده- برای درک بهتر مطالب گفته شده اینجا (مطالبی از قبیل: پیاده سازی یه hotspot روی فرم- شناسایی کنترلهایی روی فرم (اونهایی که روشون کلیک شده) و استفاده از اون کنترلها و خاصیتهاشون در runtime و بصورت پویا...)
    - پ.ن: در مورد تاپیک و نحوه استفاده از این کد :
    تو برنامه مورد نظرتون میتونید یه متغییر داشته باشید برای مشخص کردن ناحیه هایی که میشه تصویر یا عکس رو قرار داد و ناحیه هایی که نمیشه بطوریکه وقتی ماوس وارد ناحیه ممنوعه میشه این متغییر مقدار نادرست بگیره و در سایر اوقات مقدار درست . بعد در برنامتون هر وقت خواستید عکسی رو جایی قرار بدید فقط کافیه اون متغییر رو چک کنید .- میتونید بجای استفاده از یک متغییر برای چک کردن . چک کنید هر وقت وارد ناحیه ممنوعه شدید رویداد کلیک غیرفعال بشه ( یا رویدادی که عکس رو روی فرم یا صفحتون قرار میده ) و با رفتن در ناحیه بدون مشکل ,دوباره رویداد کلیک (یا هر رویدادی که کار اصلی رو براتون انجام میده ) فعالش کنید .
    میتونید با استفاده از این کد ,مدیریت کاملی روی کنترلهای موجود روی صفحتون داشته باشید و بصورت پویا در هر زمانی که خواستید ویژگیهای هر کنترل ( محل قرارگیری - عکس و ... ) رو تغییر بدید و .....
    از بابت توضیحاتتون بینهایت سپاسگزارم ، راستشو بخواین بنده برنامه شما رو دانلود کردم تا بتونم با اجرای اون ایده بگیرم اما برنامه مثل اینکه کامل آپلود نشده، ممنون میشم یه بار دیگه چک بفرمایین ، بازم ممنون
    بااحترام،niit

    آرامش محصول تفکر نیست! آرامش هنر نیندیشیدن به انبوه مسائلیست که ارزش فکر کردن ندارد...

  10. #10
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    35
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    پروژه سالمه . قبل از اینکه سعی کنید پروژه رو اجرا کنید لطفا فایل رو از حالت zip خارج کنید ( با winrar یا نرم افزار مشابه ) اگر ندارید روی فایلی که دنلود کردید راست کلیک کنید و گزینه ExtractAll رو انتخاب کنید . بعد از اینکه فایل رو از حالت فشرده خارج کردید مشکلی نخواهید داشت .

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 
صفحه 1 از 2 12 آخرینآخرین

کاربران برچسب خورده در این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

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


Powered by vBulletin
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 12:40 AM بر حسب GMT +4 می باشد.