PDA

View Full Version : ایندکس دار کردن دکمه ها



هانی هاشمی
دوشنبه 11 دی 1385, 13:03 عصر
سلام
من می خوام دکمه هام ایندکس داشته باشن
یعنی اینجوری که چند تا از دکمه ها از یه کدی پیروی کنند

مثلا باسه دکمه های 0 تا 9 ماشین حسابم از یه کدی استفاده کنند

اونایی که ویژوال بیسیک کار کرده باشن می دونن چی می گم تو ویژوال بیسیک می شد باسه دکمه هات ایندکس بزاری و از یه کد باسه چند تا دکمه استفاده کنی


ممنون می شم اگه کمکم کنید :لبخندساده:
اگه سوالم نامفهومه بگید تا بیشتر توضیح بدم:چشمک:

عفت بزرگه
دوشنبه 11 دی 1385, 13:05 عصر
نامفهومه .

هانی هاشمی
دوشنبه 11 دی 1385, 13:09 عصر
اصلا بهتره اینجوری بگم
می خوایم یه ماشین حساب درست کنیم خب
حالا می خوایم برای دکمه های 0 تا 9 ماشین حسابمون یه کد فقط بنویسیم و با کلیک کردن بر روی هر کدوم از دکمه های 0 تا 9 همون یه کد عمل کنه

اینجوری هم می شه گفت که می خوام دکمه ها به صورت آرایه بشن

عفت بزرگه
دوشنبه 11 دی 1385, 13:14 عصر
برای همش یک event کلیک بساز !

هانی هاشمی
دوشنبه 11 دی 1385, 13:17 عصر
چه جوری؟ آخه

benyamin_pc
دوشنبه 11 دی 1385, 13:24 عصر
با سلام من مشکل خانم هانی رو می دونم چون خودمم در گیرش بودم ایشون دقیقا منظورش اینه می خواد آرایه ای از دکمه داشته باشه و بتونه به دکمه ها مثل یه آرایه دسترسی داشته باشه

benyamin_pc
دوشنبه 11 دی 1385, 13:26 عصر
تو وی بی کافی بود یه کپی از یه دکمه بگیریم هنگام Paste کردن خودش می گفت می خوای به آرایه تبدیلش کنم و این کار انجام می شد اما تو سی شارپ منم چیزی ندیدم که بشه به این حالت استفاده کرد

هانی هاشمی
دوشنبه 11 دی 1385, 13:33 عصر
بله درسته همینه مشکلم
من پسرماhttp://qsmile.com/qsimages/36.gif

razavi_university
دوشنبه 11 دی 1385, 13:51 عصر
سلام
اگر درست متوجه شده باشم شما میخواهید با زدن هر کدام از دکمه های 0-9 فقط یک تابع ایجاد شود
برای اینکار کلیه دکمه های مورد نظر (0-9) را انتخاب میکنیم سپس از پنجره رویداد ها یک رویداد (مثلا click) را انتخاب میکنیم و دوبل کلیک میکنیم تا رویداد ایجاد شود . رویدادی به نام اولین کنترلی که انتخاب کرده اید ایجاد می شود و هر زمان که هر کدام از آن کلید ها کلیک شود این رویداد اجرا میشود
تنها مشکلی که باقی می ماند اینست که چگونه فرستنده رویداد (کلید مورد نظر)را مشخص کنیم برای اینکار باید تبدیل نوع انجام دهیم یعنی sender رویداد را تبدیل به کنترل مورد نظر (در اینجا کلید) بکنیم
بدین صورت :

Buton btn = (Button) sender;


و حالا از طریق btn به کلیه خصوصیات و متد های آن کلید میتوانیم دسترسی پیدا کنیم

هانی هاشمی
دوشنبه 11 دی 1385, 14:11 عصر
نشد
بعد از اینکه دکمه ها رو انتخاب کردم رو شون دابل کلیک کردم بعدش
اینجوری شد

private void button1_Click(object sender, EventArgs e)
{

}

private void button3_Click(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{

}

private void button4_Click(object sender, EventArgs e)
{

}

iman_s52
دوشنبه 11 دی 1385, 16:24 عصر
نه من فکر کنم منظورشون اینه که واسه یکی از دکمه های رویداد Click رو می سازین بعد بایستی رویداد کلیک بقیه دکمه ها رو به اون اولی نسبت می دین

هانی هاشمی
دوشنبه 11 دی 1385, 16:30 عصر
تغریبا بله
مثلا اینجوری 4 تا دکمه داریم اسم همشون btn هست :
btn[1]
btn[2]
btn[3]
btn[4]
خب حالا این همه رویداداشون یکیه

تو ویژال بیسیک به راحتی می شه این کارو کرد

عفت بزرگه
دوشنبه 11 دی 1385, 16:48 عصر
اینم کد دیگه چی می خواهی؟

هانی هاشمی
دوشنبه 11 دی 1385, 17:01 عصر
دستت درد نکنه
عالی بود

benyamin_pc
سه شنبه 12 دی 1385, 02:03 صبح
برای رویداد مشترک:
شما باید از قسمت toolbox این کار رو انجام بدین اما این روش خوب نیست چون استاتیکه یعنی اگه به طور داینامیک لازم شه تو برنامه دکمه درست کنیم به اونا دسترسی نداره!
باید روشی باشه که دقیقا مثل آرایه با اندیس بشه به کنترل ها دسترسی داشت من با اندیس عددی این کار رو می تونم انجام بدم اما می خوام بدونم راهی هس که بشه ترکیبی از عدد و حرف رو برای اندیس قرار داد ؟
مثل فلش --->

for(i=0;i<100;i++)
_root["a"+i]

هانی هاشمی
سه شنبه 12 دی 1385, 05:09 صبح
سلام
بفرمایید جناب بنیامین عزیز
البته با کمک برنامه عفت نوشتمش:چشمک:

التماس دعا

هانی هاشمی
سه شنبه 12 دی 1385, 05:21 صبح
خب براتون توضیح می دم
اول 3 تا دکمه می زارین تو فرمتون با نام های
btn1,btn2,btn
حالا برین به قسمت کدا و اینا رو اونجا بزارید

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
btn1.Click += new EventHandler(btn_Click);
btn2.Click += new EventHandler(btn_Click);

}

private void btn_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello ..");
}
}
}

بوسیله متغییر sender هم می تونید بفهمین رو کدوم دکمه کلیک شده

benyamin_pc
سه شنبه 12 دی 1385, 05:31 صبح
دستت درد نکنه اما من اینو نمی خواستم اما به یه درد دیگم خورد

من یه target absolute می خوام

ghafoori
سه شنبه 12 دی 1385, 14:01 عصر
دوست عزیز یک نگاهی به این کد بیاندازید ببینید این کارتون را راه می اندازد
6191

توسعه نویس
سه شنبه 04 دی 1386, 11:13 صبح
در پنجره properties دکمه Events را باید فشار داد و در مقابل گزینه مثلا Click برای هر کنترل نام یک تابع رو که توی کد دارید انتخاب باید کرد.

Mahdi.Kiani
سه شنبه 04 دی 1386, 11:19 صبح
در پنجره properties دکمه Events را باید فشار داد و در مقابل گزینه مثلا Click برای هر کنترل نام یک تابع رو که توی کد دارید انتخاب باید کرد.

به تاریخ ایجاد تاپیک دقت کنید. یک سال پیش !!!!!