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

نام تاپیک: قفل کردن کنترل GroupBox

  1. #1

    قفل کردن کنترل GroupBox

    چطور میشه کاری کرد که کاربر نتونه محتوییات groupBox را تغییر دهد؟
    یک راه به این صورت هست groupBox.enable=false اما این دستور باعث میشه groupBox مات بشه . ( من میخوام groupBox مات نشه )

    چطور میشه کاری کرد که کاربر نتونه محتوییات کنترل را تغییر بده بدون اینکه شکل و ظاهر کنترل تغییر کنه؟

  2. #2
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599
    نقل قول نوشته شده توسط babak23 مشاهده تاپیک
    چطور میشه کاری کرد که کاربر نتونه محتوییات groupBox را تغییر دهد؟
    یک راه به این صورت هست groupBox.enable=false اما این دستور باعث میشه groupBox مات بشه . ( من میخوام groupBox مات نشه )

    چطور میشه کاری کرد که کاربر نتونه محتوییات کنترل را تغییر بده بدون اینکه شکل و ظاهر کنترل تغییر کنه؟
    اگر بگین محتویات GroupBox چی هست ( منظور اینکه چه کنترلهایی دارین ) بهتر میشه کمک کرد !

  3. #3
    نقل قول نوشته شده توسط dr_csharp مشاهده تاپیک
    اگر بگین محتویات GroupBox چی هست ( منظور اینکه چه کنترلهایی دارین ) بهتر میشه کمک کرد !
    فکر نکنم این به اصل موضوع ربطی داشته باشه. شما فرض کن محتویات GroupBox ترکیبی از
    دکمه های رادیویی و چک باکس باشه.
    بهترین راه اینه که enable GroupBox را false کنیم اما ظاهر GroupBox تغییر میکنه و مات و بی رنگ میشه من میخوام این مورد ( مات و ببی رنگ شدن ) GroupBox برطرف بشه.

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    آبان 1385
    محل زندگی
    بندر امام خمینی (ره)
    پست
    99
    شما اصل موضوع رو نقض کردین
    اگه قراره توی برنامتون گروپ باکس بزارین با چند تا کنترل داخل اون و کاربر هم نتونه و یا نخواد تغییرشون بده پس چه لزومی به گزاشتن اونها توی برنامه است ؟؟؟

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

  5. #5
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    دوست عزیزمون هیچ مطلبی رو نقض نکردن.
    سوالشون اینه:
    چطور میشه یک groupbox رو به صورت ReadOnly کرد ولی کنترل های درون اون خاکستری نشن.
    چون وقتی خاکستری میشن خوانایی اون پایین میاد. در بحث User Friendly برنامه های این مسئله مهم میشه.

  6. #6
    نقل قول نوشته شده توسط babak23 مشاهده تاپیک
    چطور میشه کاری کرد که کاربر نتونه محتوییات groupBox را تغییر دهد؟
    یک راه به این صورت هست groupBox.enable=false اما این دستور باعث میشه groupBox مات بشه . ( من میخوام groupBox مات نشه )

    چطور میشه کاری کرد که کاربر نتونه محتوییات کنترل را تغییر بده بدون اینکه شکل و ظاهر کنترل تغییر کنه؟


    قبل از اینکه دوستان تذکر بدهند بگم که :
    - ویرایش شد : من تست نکرده بودم و فکر میکردم کد بالا نظر دوستمون رو برآورده کنه. اما ظاهرا مشکل کماکان باقیست. اما از طرفی چون کد خوبیه این پست رو به جای پاک کردن ویرایش کردم -
    آخرین ویرایش به وسیله sinpin : شنبه 03 آذر 1386 در 20:11 عصر دلیل: جواب نمیده !
    ...مرا به خانه ام ببر، اگرچه خانه؛ خانه نیست

  7. #7
    نقل قول نوشته شده توسط ir_programmer مشاهده تاپیک
    دوست عزیزمون هیچ مطلبی رو نقض نکردن.
    سوالشون اینه:
    چطور میشه یک groupbox رو به صورت ReadOnly کرد ولی کنترل های درون اون خاکستری نشن.
    چون وقتی خاکستری میشن خوانایی اون پایین میاد. در بحث User Friendly برنامه های این مسئله مهم میشه.
    دقیقا همین مورد منظورم بود هنگامی که میخواستم یک برنامه را تحویل بدم مواردی به من گفته شد که به ظاهر پیش و پا افتاده بود یکی مورد بالاست و دیگری بزرگ کردن فونت messagebox بود و مواری دیگه که به بحث User Friendly بر میگشت.
    آیا در سی شارپ دستوری وجود نداره که بشه همچنیین کاری انجام داد؟

  8. #8
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    این مشکل رو منم تو برنامه هام دارم.
    البته نمی خوام از روش های غیر استاندارد مثل نوشتن کد رویدادهای OnChange یا امثال اون استفاده کنم.
    چه روشی برای ReadOnly کردن بدون خاکستری شدن کنترل ها وجود داره که استاندارد هم باشه؟

  9. #9
    کسی نظر خاص نداره ؟ اساتید در این زمینه یاری کنند

  10. #10
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    این مشکل هنوز پا برجاست!

  11. #11
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    راه حل در VB.
    فقط باید تبدیل کنید.
    https://barnamenevis.org/showth...210#post427210

  12. #12
    بنده برای رفع این مشکل کنترل های داخل گروپ را (ReadOnly) می کنم .

  13. #13
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    نقل قول نوشته شده توسط rasool nasr مشاهده تاپیک
    بنده برای رفع این مشکل کنترل های داخل گروپ را (ReadOnly) می کنم .
    اشتباه نکنید. شما وقتی Read Only می کنید خاکستری رنگ میشن. راه حل رو نگاه کنید متوجه میشین.

  14. #14
    این تبدیل شده ی کد مورد نظر است من این کد را در کجای سی شارپ باید استفاده کنم؟

    publicclassVisualTextbox : TextBox
    {
    public VisualTextbox()
    : base()
    {
    // Initialise the class
    }
    publicnewbool Enabled
    {
    get { returnbase.Enabled; }
    set
    {
    SetDrawingStyle(!value);
    // Set the underlying value
    base.Enabled = value;
    }
    }
    privatevoid SetDrawingStyle(bool customPaint)
    {
    // Switch draw styles if disabled
    this.SetStyle(ControlStyles.UserPaint, customPaint);
    }
    protectedoverridevoid OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
    base.OnPaint(e);
    // Draw the bg in
    e.Graphics.FillRectangle(newSolidBrush(Color.Gold), this.ClientRectangle);
    // Draw the appropriate text in using the fore color
    e.Graphics.DrawString(this.Text, this.Font, newSolidBrush(this.ForeColor), -1, 1);
    }
    protectedoverridevoid OnEnabledChanged(System.EventArgs e)
    {
    base.OnEnabledChanged(e);
    SetDrawingStyle(!this.Enabled);
    this.Refresh();
    }
    }

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

  15. #15
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    نقل قول نوشته شده توسط babak23 مشاهده تاپیک
    این تبدیل شده ی کد مورد نظر است من این کد را در کجای سی شارپ باید استفاده کنم؟

    publicclassVisualTextbox : TextBox
    {
    public VisualTextbox()
    : base()
    {
    // Initialise the class
    }
    publicnewbool Enabled
    {
    get { returnbase.Enabled; }
    set
    {
    SetDrawingStyle(!value);
    // Set the underlying value
    base.Enabled = value;
    }
    }
    privatevoid SetDrawingStyle(bool customPaint)
    {
    // Switch draw styles if disabled
    this.SetStyle(ControlStyles.UserPaint, customPaint);
    }
    protectedoverridevoid OnPaint(System.Windows.Forms.PaintEventArgs e)
    {
    base.OnPaint(e);
    // Draw the bg in
    e.Graphics.FillRectangle(newSolidBrush(Color.Gold), this.ClientRectangle);
    // Draw the appropriate text in using the fore color
    e.Graphics.DrawString(this.Text, this.Font, newSolidBrush(this.ForeColor), -1, 1);
    }
    protectedoverridevoid OnEnabledChanged(System.EventArgs e)
    {
    base.OnEnabledChanged(e);
    SetDrawingStyle(!this.Enabled);
    this.Refresh();
    }
    }

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

  16. #16
    نقل قول نوشته شده توسط ir_programmer مشاهده تاپیک
    و کنترل های textBox تون رو از جنس این کلاس تعریف کنید.
    میتونی در این مورد یک مثال بزنی
    من وقتی یک تکست باکس میسازم با این کد مشکلی ندارم
    مثل این مورد

    VisualTextbox tx = newVisualTextbox();
    tx.Location = newPoint(391,235);
    tx.Size = newSize(100, 10);
    tx.Name = "tx";
    this.Controls.Add(tx);


    میخوام بدونم اگه یه تکست باکس را از جعبه toolbox به فرم اضافه کنم هم میشه از این کلاس استفاده کرد؟ اگه میشه به چه صورت؟

    فکر نکنم این مورد برای کنترل های دیگه جواب بده ؟ برای کنترل های دیگه مثل groupbox , radiobuttm و .. چی؟
    این مدلی برای هر کدوم از این کنترل ها باید یک کلاس بسازیم راه حل ساده تر وجود نداره در مورد groupbox میتونی یک مثال بزنی؟

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

  1. یک سوال داشتم در مورد GroupBox
    نوشته شده توسط smt_414 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: سه شنبه 06 شهریور 1386, 18:21 عصر
  2. دیده شدن پشت groupbox در فرم در دلفی 7
    نوشته شده توسط ashkan2005 در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: جمعه 25 اسفند 1385, 13:22 عصر
  3. گرفتن آبجکت های توی GroupBox در یک حلقه
    نوشته شده توسط MShirzadi در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 28 بهمن 1385, 08:16 صبح
  4. یه مشکل با GroupBox
    نوشته شده توسط hamed jalili در بخش C#‎‎
    پاسخ: 4
    آخرین پست: سه شنبه 19 اردیبهشت 1385, 06:38 صبح
  5. پاسخ: 1
    آخرین پست: سه شنبه 29 مهر 1382, 11:37 صبح

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

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