PDA

View Full Version : سوال: فقط تايپ عدد



backspace
دوشنبه 31 فروردین 1388, 11:30 صبح
سلام
من يه DataGridView دارم كه Proggramatically به اون column اضافه مي كنم. حالا مي خوام كاربر نتونه توي Cellهاي جدول به جز عدد چيزي ديگه تايپ كنه. چگونه مي تونم؟ در اينجا فقط بايد از كد استفاده كنماااا:متفکر:

esmaeily-hosein
دوشنبه 31 فروردین 1388, 11:50 صبح
تو میتونی از اون به ارث ببری و متد ProcessDialogKey اون یا متد های مشابه رو override کنی و بر اساس نوع ستون جاری تصمیم گیری کنی . که آیا اونو میخوای یا نه .

jalalx
دوشنبه 31 فروردین 1388, 11:58 صبح
سلام!
بفرما اينم كد:


DataGridViewCellStyle style = new DataGridViewCellStyle();
style.Format = "00000";
style.Alignment = DataGridViewContentAlignment.MiddleCenter;
style.BackColor = Color.Yellow;
dataGridView1.Columns[0].DefaultCellStyle = style;

esmaeily-hosein
دوشنبه 31 فروردین 1388, 12:12 عصر
این کد دوستمون برای نمایشه فراموش نشه . نه برای ورود اطلاعات
اگر column تو Bound هم باشه بعد از خروج بهش گیر میده .

احمد سامعی
دوشنبه 31 فروردین 1388, 12:41 عصر
ساده ترين كار اجازه تايپ به كاربر نديد به اين صورت كه اگر كليدي غير از عدد را زد برنامه ناديده بگيره
من از اين كد براي تكس بكس استفاده كردم امتحان كنن:


private void dataGridView1_keydown(object sender, System.Windows.Forms.KeyEventArgs e)
{
this.dataGridView1.Capture = true;
// Check if current key is number or not
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
if (e.KeyCode != Keys.OemMinus)
if (e.KeyCode != Keys.Subtract)
if (e.KeyCode != Keys.Back)
this.dataGridView1.Capture = false;
}

private void dataGridView1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (this.dataGridView1.Capture == false)
e.Handled = true;
}