PDA

View Full Version : سوال: قرار دادن عدد در textbox مربوطه



pouran
پنج شنبه 25 مهر 1387, 09:44 صبح
سلام دوستان

من مثلاً دو textbox دارم و در پائین چند button دارم مثلا(1 ، 2 ،3 ) من می خواهم وقتی داخل textbox مربوطه کلیک کردم و بروی button 1 مثلا عدد 1 در textbox مربوطه که کلیک کردم عدد 1 قرار گیرد.

misagh1359
پنج شنبه 25 مهر 1387, 10:26 صبح
یه متغیر سراسری تعریف کن بعد بسته به اینکه رو چه textbox کلیک می کنی اونو مقدار بده ، بعد هم با یه Switch case تو رویداد Button هات شرطها رو بررسی کن و دستوراتت رو اجرا کن

pouran
پنج شنبه 25 مهر 1387, 10:35 صبح
دوست عزیز میشه راهنمایی بیشتری بکنی چون من تازه کارم

misagh1359
پنج شنبه 25 مهر 1387, 12:02 عصر
ببین خارج از همه event های مربوط به پروژه ( زیر همون جایی که نام کلاس فرم نوشته شده ) یه متغیر مثلا i تعریف کن بعد اونو تو رویداد FormLoad مقدار دهی کن مثلا مقدار اولیه 0 رو بهش بده ، textBox یه رویداد داره به اسم MouseClick داخل تک تک رویداد های text box ها این متغیر i رو مقدار دهی کن ، مثلا یکیشو مقدار 1 دیگریو 2 و بهمین ترتیب ، بعد تو رویداد های Click دکمه هات اینو بنویس


if i==1 textbox1.text ="1

if i==2 textbox2.text =2"

و بهمین ترتیب

rostamkhani
پنج شنبه 25 مهر 1387, 12:26 عصر
سلام
در مثال برای 5تا textbox یک رویداد کلیک درست کردیم و هنگام کلیک میگیم که sender رو بده به متغیر txtBox .
(sender در اصل همون textbox میباشد که باعث فراخوانی رویداد شده)
در نهایت میتونی به txtBox مقدار دهی کنی



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
{
TextBox txtBox;
public Form1()
{
InitializeComponent();
// واسه اینه که اگر قبل از کلیک کردن روی تسکباکسها رو دگمه ها بزنی خطا نده
txtBox = textBox1;
}
// این رویداد برای پنج تا تکس باکس هست
private void textBox5_Click(object sender, EventArgs e)
{
txtBox = (TextBox)sender;
}
private void button1_Click(object sender, EventArgs e)
{
txtBox.Text = "1";
}
private void button2_Click(object sender, EventArgs e)
{
txtBox.Text = "2";
}
private void button3_Click(object sender, EventArgs e)
{
txtBox.Text = "3";
}
}
}

pouran
پنج شنبه 25 مهر 1387, 13:15 عصر
دوست عزیز در textbox ها فقط یک عدد قرار می گیرد مثلا روی 1 اگر کلیک کنیم و بعد 2 را بزنیم عدد 2 جایگزین 1 می شود.

rostamkhani
پنج شنبه 25 مهر 1387, 14:20 عصر
درسته اگه میخوای اظافه بشه باید کد داخل دگمه به شکل زیر باشه


txtBox.Text += "1";

در ضمن میتونی از Tag یا از Text دگمه ها اگر عدد باشن هم استفاده کنی و برای همه دگمه ها یک رویداد کلیک تعریف کنی مثال در کد زیر .

و نکته دیگر اینکه اگر منظورت از کلیک کردن روی TextBox ها همان ورود است به جای رویداد
Click بهتر از رویداد Enter استفاده کنی چون مثلا با کلید Tab هم میشه روی TextBoxها و کنترلها حرکت کرد مثال در کد هست .



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
{
TextBox txtBox;
public Form1()
{
InitializeComponent();
// واسه اینه که اگر قبل از کلیک کردن روی تسکباکسها رو دگمه ها بزنی خطا نده
txtBox = textBox1;
}
// این رویداد برای پنج تا تکس باکس هست
private void textBox5_Click(object sender, EventArgs e)
{
//txtBox = (TextBox)sender;
}
// اگر منظورت فوکوس باشه
// این رویداد برای پنج تا تکس باکس هست
private void textBox5_Enter(object sender, EventArgs e)
{
txtBox = (TextBox)sender;
}

private void button9_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
txtBox.Text += btn.Tag.ToString();
// یا اگر تکست دگمه ها همون عدد باشه میتونی اینجوریم بنویسی
//txtBox += btn.Text;
}

}
}