PDA

View Full Version : با هر بار کلیک رویداد(event) دکمه کار جدیدی انجام بده



mehdiba3
یک شنبه 02 تیر 1392, 12:30 عصر
سلام
میخوام یک تکه برنامه بنویسیم که یک دکمه باشه و یک تکست باکس

هر بار که کاربر رو دکمه کلیک کرد تکس باکس رنکش عوض بشه

تا 3 بار این کارو انجام بده یعنی 3 رنگ مختلف

چیزی که به ذهنم رسید رو پیاده سازی کردم ولی بر به مشکل خوردم

int count = 0;
for(int i=0; i<=3 ;i++)
{
count++;

switch (count)
{
case 1:
textBox1.BackColor = Color.Blue;
break;
case 2:
textBox1.BackColor = Color.Red;

break;
case 3:
textBox1.BackColor = Color.Yellow;
break;
}


}

نمیدونم چرا تو حلقه فقط اخرین شمارنده رو در نظر میگیره. یعنی پله پله جلو نمیره اول 1 باشه بعد 2 باشه بعد 3 باشه. همش 3 رو در نظر میگیره.

میخوام با هر بار کلیک شمارنده 1 بشه تکست باکس رنگش عوض شه. وقتی شمارنده 2 شد با کلیک بعدی بازم رنگش عوض شه و ..........................................

شما چه پیشنهادی دارین؟ ممنون میشم راهنماییم کنید

arash691
یک شنبه 02 تیر 1392, 12:57 عصر
یه چیزی تو همون مایه هایی که میخوای ...


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

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int i;
private void button1_Click(object sender, EventArgs e)
{
i++;
switch (i)
{
case 1: this.BackColor = Color.Wheat;
break;
case2: this.BackColor = Color.Cyan;
break;
case 3: this.BackColor = Color.DarkBlue;
break;
case 4: this.BackColor = Color.CadetBlue;
break;
case 5: this.BackColor = Color.DarkSlateBlue;
break;
}

}
}
}




فقط این رنگ فرم رو تغییر میده .. خودت درستش کن

mehdiba3
یک شنبه 02 تیر 1392, 13:51 عصر
ممنون دوست عزیزم. البته دوست نداشتم برنامه رو برام بنویسید. فقط دوست داشتم راهنماییم کنی. بازم ممنون. خیلی خوب بود

mehdiba3
یک شنبه 02 تیر 1392, 15:07 عصر
ممنون دوستان

ppp1486
یک شنبه 02 تیر 1392, 15:25 عصر
درود بر شما دوست عزیز شما می تونید اینجوری هم کار کنید فقط اعداد توی next رو خودت تنظیم کن تا رنگهای بیشتری بهت بده
private void button1_Click(object sender, EventArgs e)
{
Random r = new Random();
Random s = new Random();
Random d = new Random();
this.BackColor = Color.FromArgb(d.Next(1,150),s.Next(1,255),d.Next( 1,200));
}

c-sharp_South
یک شنبه 02 تیر 1392, 19:24 عصر
درود بر شما دوست عزیز شما می تونید اینجوری هم کار کنید فقط اعداد توی next رو خودت تنظیم کن تا رنگهای بیشتری بهت بده
private void button1_Click(object sender, EventArgs e)
{
Random r = new Random();
Random s = new Random();
Random d = new Random();
this.BackColor = Color.FromArgb(d.Next(1,150),s.Next(1,255),d.Next( 1,200));
}

همین کد رو توی تایمر بزار خیلی خشکل میشه :خجالت:

mehdiba3
یک شنبه 02 تیر 1392, 20:39 عصر
ببینید مشکل من تو رندم نیست!! خیلی ساده بگم من میخوام یک دکمه و یک تکس باکس داشته باشم که با هر بار کلیک رنگ بگراند تکست باکسم عوض بشه. 3 رنگ رو فقط باید بگیره/ قرمز. سبز . زرد. وقتی 3 رنگ تموم شد دوباره از اول شروع کنه. بنظر خودم یک شمارده میخواد ولی هنموز نتونستم پیادش کنم.

ppp1486
یک شنبه 02 تیر 1392, 21:22 عصر
بفرمایید دوست عزیز امیدوارم منظورتون رو خوب فهمیده باشم اینم کدش
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();

}
int i = 0;
public int search(int k)
{
if (k==0)
{
k++;
return k;
}
else if (k == 1)
{
k++;
return k;
}
else
{
k = 0;
return k;
}

}
private void button1_Click(object sender, EventArgs e)
{

if (i==0)
{
this.BackColor = Color.Red;
i = search(i);
}
else if (i==1)
{
this.BackColor = Color.Green;
i = search(i);
}
else
{
this.BackColor = Color.Yellow;
i = search(i);
}

}
}
}

mehdiba3
یک شنبه 02 تیر 1392, 23:12 عصر
ممنون از دوستای خوبم اما خودم نوشتمش.

کار برنامه اینه که با زدن هر بار کلیک روی دکمه چنتا کار انجام میشه
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace @event
{
public partial class Form1 : Form

{
public int i = 0;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Button bt = (Button)sender;
i++;
switch (i)
{
case 1:

textBox1.BackColor = Color.Blue;

bt.Location=new Point(5,5);
MaximizeBox = false;


break;

case 2:
textBox1.BackColor = Color.Red;
MinimizeBox = false;

bt.Location=new Point(10,10);
break;
case 3:
textBox1.BackColor = Color.Yellow;
this.ControlBox = false;

bt.Location=new Point(20,20);
break;
case 4: System.Diagnostics.Process.Start("calc");

bt.Location=new Point(30,30);
break;
case 5: this.ControlBox = true;
MinimizeBox = true;
MaximizeBox = true;
break;


}
if (i == 5)
{
i = 0;
}

}

private void button2_Click(object sender, EventArgs e)
{
this.Close();
}





}

}