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

نام تاپیک: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    تهران
    سن
    31
    پست
    584

    Unhappy تابع تنظیم اندازه فرم و کنترل های داخل فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    از دوستان خواهش می کنم بگن برای رزولیشن در کامپیوترهای مختلف راه حلی دارند
    من خودم یک برنامه نوشتم که توی یک لب تاب مینی فرم هاش بعضی قسمتاش دیده نمی شد و کاربر امکان کار با اونو توی این نوع لب تاب ها نداشت ، توی خیلی از AutoRun ها هم دیدم این مشکل مثلا توی king 2012 بدلیل بزرگی اتوران کاربر امکان استفاده از اتوران را ندارند(تو لب تاب مینی) توی اینترنت هم خیلی گشتم ولی چیز خاصی پیدا نکردم
    اومدم یک تابع نوشتم به صورت زیر می خواستم نظر دوستان رو در مورد این تابع بدونم و اگه راحه مناسب تری هم دارند بنویسند ممنون می شم


    publicvoid ResolutionForm()
    {

    Screen scrn = Screen.FromControl(this);
    if (scrn == null)
    {
    scrn =
    Screen.PrimaryScreen;
    }
    int deskHeight = scrn.Bounds.Height;
    int deskWidth = scrn.Bounds.Width;
    int Width = deskWidth;
    int Heigth = deskHeight;
    int FormHeight = this.Size.Height;
    int FormWidth = this.Size.Width;
    int WidthFormNew = (FormWidth * deskWidth) / 1366; //...............Width Resulation
    int HeightFormNew = (FormHeight * deskHeight) / 768; //...............Height Resulation
    this.Size = newSize(WidthFormNew, HeightFormNew);
    this.StartPosition = FormStartPosition.Manual;
    this.Location = newPoint((deskWidth - WidthFormNew) / 2, (deskHeight - HeightFormNew) / 2);
    }

    این تابع برای تنظیم اندازه فرم در رزولیشن های متفاوت نحوه کارشم به این صورت است که رزولیشن کامپیوتر مقصد می گیره اندازه فرم رو هم می گیره با انجام یک سری عمل ریاضی اندازه جدید فرم رو بدست می یاره
    دو عدد 1366 و 768 هم به ترتیب عرض و طول رزولیشن کامپیوتری است که توش برنامه ساخته شده


    تابع زیر هم برای کنترل های داخل فرم هستش


    publicvoid ResolutionControls(Control A)
    {
    Screen scrn = Screen.FromControl(this);
    if (scrn == null)
    {
    scrn =
    Screen.PrimaryScreen;
    }
    int deskHeight = scrn.Bounds.Height;
    int deskWidth = scrn.Bounds.Width;
    int Width = deskWidth;
    int Heigth = deskHeight;
    int FormHeight = this.Size.Height;
    int FormWidth = this.Size.Width;
    int WidthFormNew = (FormWidth * deskWidth) / 1366; //...............Width Resolution
    int HeightFormNew = (FormHeight * deskHeight) / 768; //...............Height Resolution
    int WidthControl = A.Size.Width;
    int HeightControl = A.Size.Height;
    A.Size =
    newSize(WidthFormNew * WidthControl / FormWidth,HeightFormNew * HeightControl / FormHeight);
    int LocationControlX = A.Location.X;
    int LocationControlY = A.Location.Y;
    A.Location =
    newPoint(WidthFormNew * LocationControlX / FormWidth, HeightFormNew * LocationControlY / FormHeight);
    }


    طرز کار این تابع هم به صورت تابع بالا هست با این تفاوت که در این تابع کنترل های داخل فرم اندازه و location شون تغییر می کنه

    و پس از نوشتن این 2 تابع در فرم باید کد زیر رو به قسمت لود فرمت اضافه کنی


    برای تغییر اندازه فرم
    ResolutionForm();

    برای تغییر اندازه کنترل های داخل فرم
    ResolutionControls(dataGridView1);
    ResolutionControls(checkBox1);
    ResolutionControls(button1);
    ResolutionControls(button2);
    ResolutionControls(button3);
    ResolutionControls(button4);
    آخرین ویرایش به وسیله saeedhushmand : چهارشنبه 03 خرداد 1391 در 16:48 عصر

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

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    از خاصیت Auto Scrol استفاده کن ! زمانی که اندازه تغییر کرد Scrol بندازه !

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    تهران
    سن
    31
    پست
    584

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

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

  4. #4
    کاربر جدید
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    همدان
    پست
    21

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

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

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

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

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    تهران
    سن
    31
    پست
    584

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    این کاری که dj.graph می گه همون کاری که من کردم به این صورت که

    1-رزولیشن کامپیوتری که من برنامه رو توش ساختم (همون 1366 , 768) که من در بالا گفتم ---------> dj.graph : مثلا رزولیشن فرم رو در حد 800 در 600 بگیر (بستگی به طراحی خودت داره)

    2-توی کد اولم من با 5 خط اول رزولیشن کامپیوتر مقصد رو دراوردم ---------------> dj.graph : بعد با دو خط کد میتونی رزولیشن کامپیوتر هر کسی که داره از برنامه استفاده میکنه رو در بیاری

    3- بعد من با انجام یک سری عمل ریاضی اندازه جدید فرم (در کامپیوتر مقصد ، نسبت به رزولیشن اون) بدست اوردم ---------> dj.graph :بعد بازم دو یا سه خط کد داره، که بگی سایز رزولیشن رو مثلا 50 پیکسل کمتر یا همون اندازه رزولیشن کامپیوتر طرف بگیره

    تازه مشکل ما با تغییر اندازه فرم در کامپیوتر مقصد بیشتر می شه چوت مثلا با کوچک شدن فرم اندازه کنترل ها و تنظیم کنترل های داخل فرم بهم می ریزه از خاصیت Anchor نمی شه استفاده کرد چون امکان داره مثلا یک button بسیار کوچک یا اصلا ناپدید کنه
    در تابع دوم هم من مقدار location و size کنترل های داخل فرم رو نسبت به تغییر سایز فرم تغییر دادم

  7. #7
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    397

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

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

  8. #8

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    توسط tableLayoutPanel به راختی میشه این کار رو انجام داد. فقط میبایست در لود فرم فرمها اندازه فرم رو براساس رزولوشن تنظیم کنید.
    یک مثال برای تغییر اندازه کنترل ها براساس اندازه فرم میزارم
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 27 تیر 1391 در 19:38 عصر

  9. #9
    کاربر جدید
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    همدان
    پست
    21

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    سلام
    يك نمونه از كاري كه تو تاپيك قبلي گفتم رو اينجا واسه دانلود ميزارمش. اميدوارم كه به دردتون بخوره...
    دانلود

  10. #10
    کاربر جدید
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    همدان
    پست
    21

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    در ضمن؛ براي بدست آوردن رزوليشن هر كامپيوتر اصلا نيازي به 5 خط كد نيست دوست عزيز..



    var Height = SystemInformation.PrimaryMonitorSize.Height;
    var Width = SystemInformation.PrimaryMonitorSize.Width;

  11. #11
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    تهران
    سن
    31
    پست
    584

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    دوست عزیز ما مشکلمون اصلا 2 خط یا 5 خط کد نیست تازه اگر کد تو هم مثل کد من خط های کوتاه داشته باشه همون 5 خط میشه ما این تاپیک برای بدست اوردن راه حلی بهتر ایجاد کرده ایم
    که یکی از این راه حل ها رو دوستمون mafaman2003 گفت که بهتر به جای کد برای تغییر اندازه کنترل ها از tableLayoutPanel استفاده کنیم که راه حل منطقی هم هستش و دیگر نیازی به کدی برای کنترل ها نیست و فقط کد تغییر سایز فرم کافی....

  12. #12
    کاربر دائمی
    تاریخ عضویت
    مهر 1390
    محل زندگی
    تهران
    سن
    31
    پست
    584

    نقل قول: تابع تنظیم اندازه فرم برنامه در کامپیوترهایی با رزولیشن های متفاوت

    من توی تاپیک 9 دوستمون dg.graph نمونه کاری که گذاشته بود رو نگاه کردم اصلا کد درستی نیست

    این کد استفاده شده تو پروژه دوستمون

    // بدست آوردن سايز مانيتور = رزولوشن
    var Height = SystemInformation.PrimaryMonitorSize.Height;
    var Width = SystemInformation.PrimaryMonitorSize.Width;
    this.Height = Height - 50;
    this.Width = Width - 50;


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

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

  1. سوال: تغییر اندازه فرم برنامه در کامپیوترهای مختلف
    نوشته شده توسط saeed 444 در بخش VB.NET
    پاسخ: 1
    آخرین پست: جمعه 27 آبان 1390, 19:38 عصر
  2. تنظیم اندازه فرم و کنترل های برنامه با رزولیشن
    نوشته شده توسط mf_007 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 28 فروردین 1389, 22:49 عصر
  3. تنظیم اندازه فرم
    نوشته شده توسط paysokhan در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: جمعه 11 بهمن 1387, 13:09 عصر
  4. تنظیم اندازه فرم
    نوشته شده توسط lvenoos در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: چهارشنبه 12 بهمن 1384, 20:29 عصر
  5. تنظیم اندازه فرم با resolusion مونیتور ؟
    نوشته شده توسط alilittle در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: یک شنبه 22 آذر 1383, 07:55 صبح

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

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