PDA

View Full Version : سوال: کد مشترکی برای(رنگی شدن تکس باکس در موقع فوکوس شدن )حدود 60 تکس باکس



systam
چهارشنبه 06 شهریور 1392, 21:37 عصر
سلام
رنگی شدن تکس باکس در موقع فوکوس شدن بلدم کد نویسی شو ولی
اگه توی فرم حدود 60 تکس باکس داشته باشیم یعنی باید بیام برای هرکدوم از تکس ها تو قسمت
LostFocus , GotFocus کد نویسی کنم خیلی وقت گیره راه بهتری نیست برای این کار ؟


ممنون میشم راهنمایی کنید

CsharpNevisi
چهارشنبه 06 شهریور 1392, 22:05 عصر
از دات نت بار استفاده کن ... این حرکتو راحت میتونی باهاش بزنی و کلیـــــــــ زیبایی های دیگه ... !!!

amir200h
چهارشنبه 06 شهریور 1392, 22:08 عصر
این نمونه رو داشته باش ببین همونه که می خوای ؟؟؟؟؟؟
http://www.uploadmb.com/dw.php?id=1377101054
به نقل از استاد khokhan

ma.rad
چهارشنبه 06 شهریور 1392, 22:09 عصر
بسیار تکراری:

public frm()
{
InitializeComponent();

foreach (Control control in this.Controls )
if (control is TextBox )
{
control.Enter += new EventHandler(control_Enter);
control.Leave += new EventHandler(control_Leave);
}
}

و

private void control_Enter(object sender, EventArgs e)
{
((Control)sender).BackColor = Color.Yellow;
}
private void control_Leave(object sender, EventArgs e)
{
((Control)sender).BackColor = Color.Empty;
}

mbza11
چهارشنبه 06 شهریور 1392, 23:22 عصر
سلام.
یه یوزرکنترل درست کن که توش فقط تکست باکس باشه، بعد به جای تکست باکس خود vs از این یوزرکنترل استفاده کن.
اینجوری می تونی یه سری امکانات دیگه هم بهش اضافه کنی.

موفق باشید.

مهرداد صفا
پنج شنبه 07 شهریور 1392, 02:12 صبح
با سلام.
دوست عزیز بارها بحث شده! جستجو می کردید زودتر به نتیجه می رسیدید.
به هر حال برای تمام مواردی از این قبیل که نیاز اعمال خصوصیت و .. خاصی روی تمام یا تعداد زیادی از نمونه های یک کنترل و یا به طور کلی یک کلاس داشتید، استفاده از وراثت از نظر اصول و قواعد کد نویسی بهترین روش است.

برای رنگی شدن تمام TextBox ها در هنگام Focus:
1- از منوی project>>add Class... را اجرا کرده (یا کلیدهای ALT+shift+c را بزنید) نام MyTextBox.cs را وارد کنید و کلید Add را کلیک کنید.
2- از منوی view>>solution explorer را باز کرده (یا کلید Ctrl+w سپس s را در visual c# و یا alt+CTRL+j در vs و یا CTRL+r در vb را بزنید) روی MyTextBox.cs کلیک کنید و کد آن را به شکل زیر تغییر دهید:

//in the name of god
//اللهم صل علی محمد و آل محمد

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication2
{
class MyTextBox:System.Windows.Forms.TextBox
{
protected override void OnEnter(EventArgs e)
{
base.OnEnter(e);
this.BackColor = System.Drawing.Color.Yellow;
}

protected override void OnLeave(EventArgs e)
{
base.OnLeave(e);
this.BackColor = System.Drawing.Color.White;
}
}
}


3- مجددا solution explorer را اجرا کرده روی نام پروژه راست کلیک و گزینه rebuild را اجرا کنید.
4- از solution explorer گزینه مربوط به فرم را باز کرده از منوی view>>designerرا انتخاب کنید و یا کلید ctrl+f7 را بزنید.
5- از منوی View>>Toolbox را اجرا کنید و یا کلیدهای ALT+CTRL+X را بزنید و به تعداد لازم MyTextBox به فرم اضافه کنید ....