PDA

View Full Version : آموزش: جلو گیری از نوشتن عدد یا رشته به وسیله کاربر در تکست بکس یا ریچ تکس باکس (مبتدی)



alexmcse
پنج شنبه 24 اسفند 1391, 16:04 عصر
سلام
//رشته
if (!Char.IsDigit (e.KeyChar))
e.Handled = true;
else
e.Handled = false;


//عدد
if (!Char.IsLetter (e.KeyChar))
e.Handled = true;
else
e.Handled = false

AceBomBom
پنج شنبه 24 اسفند 1391, 16:43 عصر
میشه یه توضیحی در باره این موضوع بگید

مثلا میشه این علامت ! برداشت و جای true و false ها رو عوض کرد

ممنون

alexmcse
پنج شنبه 24 اسفند 1391, 16:49 عصر
اگر ! را بگدارید یعنی فالس و اگر نگذارید یعنی ترو

bool b = true; ;
if (b)//true
MessageBox.Show("true ");
else if (!b)//false
MessageBox.Show("false ");

AceBomBom
پنج شنبه 24 اسفند 1391, 16:57 عصر
منظور من به این صورت است
//رشته
if (Char.IsDigit (e.KeyChar))
e.Handled = false;
else
e.Handled = true;


//عدد
if (Char.IsLetter (e.KeyChar))
e.Handled = false;
else
e.Handled = true

amir200h
پنج شنبه 24 اسفند 1391, 18:59 عصر
چیه این کد؟ کجا باید گذاشتش؟
یه توضیح بدی بد نیست

AceBomBom
پنج شنبه 24 اسفند 1391, 19:39 عصر
همون کد خودتون است ولی با برداشتن ! و عوض کردن true و false ها میخواستم ببینم جواب میده یا نه ؟

ممنون

erfan_urchin
جمعه 25 اسفند 1391, 11:40 صبح
چیه این کد؟ کجا باید گذاشتش؟
یه توضیح بدی بد نیست

این کد هارو باید در رویداد textbox_KeyPress بنویسین

erfan_urchin
جمعه 25 اسفند 1391, 11:50 صبح
اما کد این دوست عزیزمون یه مشکلی داره اونم اینه که با paste/copy کردن میتونی عدد بزاری
اما من قبلا یه کدی دیدم که شما هر کاری کنی نمیتونی عدد بزاری البته کدش خیلی پیچیدس اما گفتم شاید بدرد بعضیا بخوره برا همین کدشو میزارم
public partial class Form1 : Form
{
private bool _isFormmating = false;
private bool _isControlDown = false;

public Form1()
{
InitializeComponent();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (_isFormmating == false)
{
_isFormmating = true;
textBox1.Text = FormatText(textBox1.Text);
_isFormmating = false;
}
}

private string FormatText(string unformattedText)
{
StringBuilder formattedText = new StringBuilder(unformattedText.Length);
int i = 0;
while (i < unformattedText.Length)
{
if (unformattedText[i] >= '0' && unformattedText[i] <= '9')
formattedText.Append(unformattedText[i]);
i++;
}
return formattedText.ToString();
}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!_isControlDown)
if (e.KeyChar != '\b' && (e.KeyChar < '0' || e.KeyChar > '9'))
e.Handled = true;
}

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode & Keys.ControlKey) == Keys.ControlKey)
_isControlDown = true;
}

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
_isControlDown = false;
}

}
تا الان کدی پیدا نکردم که هیچ جوره نتونی حروف بزاری اگه پیدا کردم میزارم