کد عمومی برای تغییر ForColor در دکمه های یک فرم
سلام
چطور میشه یه کد نوشت که وقتی روی هر یک از دکمه های یک فرم Focus بشه ، رنگ فونت یا همون ForeColor مثلاً قرمز بشه .
تک تک میشه این کد رو نوشت :
private void button_Enter(object sender, EventArgs e)
{
button.ForeColor = Color.Red;
}
ولی اگه 20 تا دکمه داشته باشیم کار سختی میشه و فکر کنم اشتباهه !
می خام یه کد عمومی بنویسیم که هر گاه روی هر یک از دکمه ها فوکوس شد رنگش عوض شه .
همینطور روی تکست باکس ها ، هر وقت Enter شد ( ورود به یک تکست باکس ) رنگ زمینه عوض شه
مرسی
2 ضمیمه
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
نقل قول:
نوشته شده توسط
Helmod
سلام
چطور میشه یه کد نوشت که وقتی روی هر یک از دکمه های یک فرم Focus بشه ، رنگ فونت یا همون ForeColor مثلاً قرمز بشه .
تک تک میشه این کد رو نوشت :
private void button_Enter(object sender, EventArgs e)
{
button.ForeColor = Color.Red;
}
ولی اگه 20 تا دکمه داشته باشیم کار سختی میشه و فکر کنم اشتباهه !
می خام یه کد عمومی بنویسیم که هر گاه روی هر یک از دکمه ها فوکوس شد رنگش عوض شه .
همینطور روی تکست باکس ها ، هر وقت Enter شد ( ورود به یک تکست باکس ) رنگ زمینه عوض شه
مرسی
یه دونه برای باتن ویه دونه برای تکست باکس dll نوشته و برای هرکدوم هم مثالی زده ام
کدهای مربوط به dll باتن using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace fucos_button1
{
public partial class UserControl1 : UserControl
{
Color onEnter = Color.Green;
Color onLeave = Color.Black;
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(object sender, EventArgs e)
{
}
private void button1_Enter(object sender, EventArgs e)
{
this.button1.ForeColor = onEnter;
}
private void button1_Leave(object sender, EventArgs e)
{
this.button1.ForeColor = onLeave;
}
}
}
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
از این کد هم میتونی استفاده کنی... !!
البته من امتحانش نکردم ... خودت تو یه ترد بنویس و تستش کن .. !!
foreach (Control Cn in this.Controls)
{
//رنگی که میخوایی اول داشته باشه
Cn.ForeColor = Color.Blue;
if (Cn.Focus())
{
//رنگ موقع فکوس
Cn.ForeColor = Color.Red;
}
}
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
نقل قول:
نوشته شده توسط
CsharpNevisi
از این کد هم میتونی استفاده کنی... !!
البته من امتحانش نکردم ... خودت تو یه ترد بنویس و تستش کن .. !!
foreach (Control Cn in this.Controls)
{
//رنگی که میخوایی اول داشته باشه
Cn.ForeColor = Color.Blue;
if (Cn.Focus())
{
//رنگ موقع فکوس
Cn.ForeColor = Color.Red;
}
}
دستتون درد نکنه ، ولی امتحانش کردم نشد === یعنی میشه رنگ اولیه رو تعریف کرد و درست ج میده ولی تووی فوکوس کار نمیکنه
در ضمن این تمام کنترل خای موجود رو تغییر رنگ میده می خوام فقط دکمه هام این طوری بشن
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
این یکی چی ؟
foreach (Control Cn in this.Controls)
{
//رنگی که میخوایی اول داشته باشه
Cn.ForeColor = Color.Blue;
if (Cn.Focus() == true)
{
//رنگ موقع فکوس
Cn.ForeColor = Color.Red;
}
}
راستی تردی که مینویسی باید اینو تو حلقه بی نهایت بزاریا ... !!
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
[QUOTE=CsharpNevisi;1813580]این یکی چی ؟
[CSHARP] foreach (Control Cn in this.Controls)
{
//رنگی که میخوایی اول داشته باشه
Cn.ForeColor = Color.Blue;
if (Cn.Focus() == true)
امتحان کردم نشد //
این کدیه که برنامه میفهمه توی فرم دکمه هست :
foreach (var item in this.Controls)
{
if (item is Button)
{
(item as Button).ForeColor = Color.Red;
}
}
حالا چطوری میشه نوشت این دکمه ها هنگام فوکوس رنگشون عوض شه ؟؟؟؟؟
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
کار نسبتا ساده ای هست
5 دقیقه زمان برد
private void Form1_Load (object sender , EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
ctrl.MouseEnter +=new EventHandler(ctrl_MouseEnter);
ctrl.MouseLeave += new EventHandler(ctrl_MouseLeave);
}
}
}
void ctrl_MouseEnter (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.PaleVioletRed;
}
void ctrl_MouseLeave (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = this.BackColor;
}
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
بالایی برای زمانی که موس حرکت روی کنترل دارد واین هم برای زمانی که با کیبرد یا موس کنترل فوکوس میگیرد
private void Form1_Load (object sender , EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
ctrl.GotFocus += new EventHandler(ctrl_GotFocus);
ctrl.LostFocus += new EventHandler(ctrl_LostFocus);
}
}
}
void ctrl_LostFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = this.BackColor;
}
void ctrl_GotFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Salmon;
}
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
نقل قول:
نوشته شده توسط
IMANAZADI
بالایی برای زمانی که موس حرکت روی کنترل دارد واین هم برای زمانی که با کیبرد یا موس کنترل فوکوس میگیرد
private void Form1_Load (object sender , EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
ctrl.GotFocus += new EventHandler(ctrl_GotFocus);
ctrl.LostFocus += new EventHandler(ctrl_LostFocus);
}
}
}
void ctrl_LostFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = this.BackColor;
}
void ctrl_GotFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Salmon;
}
آقا دمت گرم حل شد مشکل ! مرسی
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
نقل قول:
نوشته شده توسط
IMANAZADI
بالایی برای زمانی که موس حرکت روی کنترل دارد واین هم برای زمانی که با کیبرد یا موس کنترل فوکوس میگیرد
private void Form1_Load (object sender , EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
ctrl.GotFocus += new EventHandler(ctrl_GotFocus);
ctrl.LostFocus += new EventHandler(ctrl_LostFocus);
}
}
}
void ctrl_LostFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = this.BackColor;
}
void ctrl_GotFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Salmon;
}
یه مشکلی پیش اومد !!! این کد توی فرم یک من کار کرد ، ولی الان همون کد رو توی فرم 2 کپی کردم تا دکمه های این فرم این مثل فرم یک هنگام فوکوس قرمز شن ، ولی کار نمیکنه ! یعتی اصلاً ارور هم نمیده و کار نمیکنه .
نقل قول: کد عمومی برای تغییر ForColor در دکمه های یک فرم
دوست عزیز کپی نکن
چون کد اولی زمانی اجرا میشه که فرم شماره 1 لود میشه و مابقی رویداد ها...
برو تو فرم دومت و روی یه قسمت خالی از فرم که کنترلی نداره دوبار کلیک کن تا رویداد لود فرم در حالت کد باز بشه
بعد کد زیر رو تو اون کپی کن
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
ctrl.GotFocus += new EventHandler(ctrl_GotFocus);
ctrl.LostFocus += new EventHandler(ctrl_LostFocus);
}
}
بعد پایین رویداد form load این ها رو کپی کن
داخل رویداد فرم لود نه ها ، بعد از رویداد فرم لود
void ctrl_LostFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = this.BackColor;
}
void ctrl_GotFocus (object sender , EventArgs e)
{
Button btn = sender as Button;
btn.BackColor = Color.Salmon;
}