PDA

View Full Version : button ها در سی شارپ



gigilnaz
چهارشنبه 11 مرداد 1391, 20:24 عصر
دوستای گلم سلام و روز همگیتون بخیر یه راهنمایی می خواستم .
توی سی شارپ . نت می خوام توی فرم اگر مثلا 10 تا دکمه دارم همشون از یه خصوصیت خاص پیروی کنن مثلا همشون وقتی که روشون میام تغییر رنگ بدن . راهی داره که همگی رو با هم تغییر داد . و یا مثلا چند تا فرم دارم که هر کدوم چند تا دکمه دارن می خوام همشون از یه حالت ÷یروی کنن .
لطفا راهنماییم کنین ممنون .

ehsan7007
چهارشنبه 11 مرداد 1391, 20:48 عصر
منظورتون رو خوب نمی فهمم.لطفا بیشتر توضیح بدید.
اگر می خواین باتن های یک فرم رو با هم تنظیم کنید (مثلا فونت همه B Nazanin باشه) کافیه با نگه داشتن Ctrl یکی یکی انتخابشون کنی و از properties خاصیتی رو که می خوای همش.ن داسته باشن تنظیم کنی.

یه راهه دیگه هم هست:
فرمتون رو انتخاب کنید و از پنجره ی properties ، در قسمت فونت اون رو به نازنین تغییر بدید ، اینجوری هم همه ی کنترل های درون فرم (باتن ها ،لیبل ها ، تکست باکس ها و..) فونتشون نازنین می شه.



امیدوارم منظورت رو درست فهمیده باشم.

gigilnaz
چهارشنبه 11 مرداد 1391, 21:35 عصر
ممنونم از پاسخ گویی شما
منظورم این نبود من می خوام یه بار یه عملیاتی رو انجام بدم مثلا کاری کنم که همه دکمه های همه فرمهام یه خصلت رو داشته باشن و وقتی می خوام مثلا با کلیک روی همه دکمه ها اون دکمه ها تغییر رنگ بدن لازم نباشه تک تک اون رو تنظیم کنم فقط یه جا اون رو تغییر بدم و همه دکمه ها اصلاح بشن

ALPking
چهارشنبه 11 مرداد 1391, 21:51 عصر
سلام
اول اون کنترل هایی که میخواهید یه کار شبیه انجام بدهند را انتخاب کنید
سپس روی مجموعه انتخاب شده راست کلیک کنید و properties را انتخاب کند.از پنجره باز شده به بخش event ها بروید و با دابل کلیک روی event مورد نظر خودتون به بخش کد رفته و کد مربوط به کار ی که تمایل دارید همه کنترل های مورد نظرتان انجام دهند را بنویسسید. حالا مثلا برای موردی که خودتون گفتید باید در رویداد mouseUp همه کنترل های مورد نظرتون رنگ پس زمینه آنها را به رنگی که تمایل دارید تغییر دهید.

gigilnaz
چهارشنبه 11 مرداد 1391, 22:02 عصر
میشه بگین چه کدی رو بنویسم ؟ من کد زیر رو که می نویسم فقط دکمه 3 تغییر می کنه ؟
button1.BackColor = Color.Red;

مهرداد صفا
چهارشنبه 11 مرداد 1391, 22:14 عصر
دوستای گلم سلام و روز همگیتون بخیر یه راهنمایی می خواستم .
توی سی شارپ . نت می خوام توی فرم اگر مثلا 10 تا دکمه دارم همشون از یه خصوصیت خاص پیروی کنن مثلا همشون وقتی که روشون میام تغییر رنگ بدن . راهی داره که همگی رو با هم تغییر داد . و یا مثلا چند تا فرم دارم که هر کدوم چند تا دکمه دارن می خوام همشون از یه حالت ÷یروی کنن .
لطفا راهنماییم کنین ممنون .
سلام
میتوانید از کنترلها به صورت لیست یا آرایه استفاده کنید تا در حلقه خصوصیات آنها را تغییر بدهید یا اگر هم میخواهید در رویدادی مثلا رنگ آنها تغییر کند میتوانید از کدی شبیه به این استفاده کنید.

//in the name of god
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.MouseEventHandler MouseMoveHandler = new MouseEventHandler(this.MouseMove);
this.button1.MouseMove += MouseMoveHandler;
this.button2.MouseMove += MouseMoveHandler;
this.checkBox1.MouseMove += MouseMoveHandler;
this.textBox1.MouseMove += MouseMoveHandler;

}
void MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
Control MyControl = (Control)sender;
MyControl.BackColor = Color.Black;
}
}
}

gigilnaz
چهارشنبه 11 مرداد 1391, 22:23 عصر
مرسی ولی لگر بخوام همه دکمه های همه فرمهام رو تغییر بدم چی ؟ از قبل باید چه کاری انجام بدم که اگر خواستم همشونو تغییر بدم نیاز به وقت زیادی نداشته باشه و با تغییر یک دکمه بقیه هم تغییر کنه ؟

gigilnaz
چهارشنبه 11 مرداد 1391, 22:34 عصر
سلام
میتوانید از کنترلها به صورت لیست یا آرایه استفاده کنید تا در حلقه خصوصیات آنها را تغییر بدهید یا اگر هم میخواهید در رویدادی مثلا رنگ آنها تغییر کند میتوانید از کدی شبیه به این استفاده کنید.

//in the name of god
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.MouseEventHandler MouseMoveHandler = new MouseEventHandler(this.MouseMove);
this.button1.MouseMove += MouseMoveHandler;
this.button2.MouseMove += MouseMoveHandler;
this.checkBox1.MouseMove += MouseMoveHandler;
this.textBox1.MouseMove += MouseMoveHandler;

}
void MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
Control MyControl = (Control)sender;
MyControl.BackColor = Color.Black;
}
}
}



از mousemove خطا میگیره ؟

gigilnaz
چهارشنبه 11 مرداد 1391, 23:14 عصر
یک بار رویداد را بنویسید و برای هر دکمه ای که میخواهید تاثیر داشته باشه از پنجره events رویداد باتن ها را روی این رویدادها تنظیم کنید(دابل کلیک نکنید، از کمبو رویداد قبلی را انتخاب کنید)
private void button_MouseEnter(object sender, EventArgs e)
{
(sender as Button).BackColor = Color.Red;
}

private void button_MouseLeave(object sender, EventArgs e)
{
(sender as Button).UseVisualStyleBackColor = true;
}


ممنون از راهنماییتون عالی بود درست شد . سپاسگذارم

مهرداد صفا
چهارشنبه 11 مرداد 1391, 23:18 عصر
از mousemove خطا میگیره ؟
احتمالا به خاطر همنامی با this.MouseMove باشد. اسمش را به یک اسم دلخواه مثلا MouseMoveEvent تغییر دهید.

ALPking
چهارشنبه 11 مرداد 1391, 23:21 عصر
چه خطایی میگیره؟

مهرداد صفا
پنج شنبه 12 مرداد 1391, 00:22 صبح
مرسی ولی لگر بخوام همه دکمه های همه فرمهام رو تغییر بدم چی ؟ از قبل باید چه کاری انجام بدم که اگر خواستم همشونو تغییر بدم نیاز به وقت زیادی نداشته باشه و با تغییر یک دکمه بقیه هم تغییر کنه ؟
میتوانید کنترلها را به صورت آرایه عمومی تعریف کنید تا در یک حلقه شمارنده حلقه را به عنوان index به آرایه داده و خصوصیت عضو مربوطه را بخواهید. به این کد دقت کنید:

//in the name of god
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 WindowsFormsApplication1
{

public partial class Form1 : Form
{
Button[] buttons = new Button[10];
public Form1()
{
InitializeComponent();
for (int i = 0; i <= 9; i++)
{

buttons[i] = new Button();
buttons[i].Text = "button" + i;
buttons[i].Top = i * 40;
this.Controls.Add(buttons[i]);
}
}

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i <= 9; i++)
{
buttons[i].BackColor = Color.Black;
}

}
}
}

رنگ کنترلها با Load شدن فرم در یک حلقه تغییر میکند.