PDA

View Full Version : عدد در سلول دیتا گرید



s_mostafa_h
دوشنبه 17 اردیبهشت 1386, 00:00 صبح
با سلام
می خوام فقط در سلول DataGrid در سلو لهای یک ستون خاص فقط عدد وارد شود . یعنی کاربر نتونه غیر از عدد چیز دیگری را تایپ نمایید .من تابع را نوشتم :


public bool OnlyIsNumeric(string val)
{
try
{
int result = 0;
return int.TryParse(val, System.Globalization.NumberStyles.Integer, System.Globalization.NumberFormatInfo.CurrentInfo, out result);
}
catch
{
return false;
}
}

و در رویداد CurrentCellChanged این را نوشتم :


if (this.OnlyIsNumeric(grdAjnasDetails[grdAjnasDetails.CurrentRowIndex, 2].ToString()) == false)
که در این قسمت مقدار سلول در صورت عددی نبودن پاک شود

با تشکر

s_mostafa_h
دوشنبه 17 اردیبهشت 1386, 10:29 صبح
کسی یک راهنمایی بکند ....

Ghasem Dehghani
دوشنبه 17 اردیبهشت 1386, 12:13 عصر
با سلام .
شما میتونید از کد زیر استفاده کنید .

if (e.ColumnIndex == 0)
{
try
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value =
Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
}
catch
{
try
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
}
catch { }
}
}
در داخل if میتونید شماره ستون مورد نظر را وارد کنید که از صفر شروع میشه .
برای مشاهده عمکرد کد فوق میتونید از کد بالا کپی بگیرید و در رویداد CellValueChanged دیتاگرید قرار بدهید .

s_mostafa_h
دوشنبه 17 اردیبهشت 1386, 13:54 عصر
آقا سلام
آبجکت من DataGrid است نه DataGridView که property بالا را ندارد .

jafarizade
دوشنبه 17 اردیبهشت 1386, 15:33 عصر
با سلام
شما به دیتا گریدتون یک سری data column اضفه میکنید و میتوانید در زمان تعریف این data column ها بگویید که این data column از نوع int هست.
اگه بازم مشکلی بود بگید تا از بین کدام واستون کد بدرد بخور رو پیدا کنم

s_mostafa_h
دوشنبه 17 اردیبهشت 1386, 22:57 عصر
جناب jafarizade سلام
هدف من اینه که اولا در سلول مثلا ستون 2 کاربر فقط بتونه عدد وارد کند در صورتی که غیر از عدد وارد کند ،‌ خود به خود مقدار وارد شده پاک شود . ببین من در مورد TextBox مشکلی ندارم و تابعی را که در بالا نوشتم را برای TextBox قابل استفاده است به صورت ذیل :


if (this.OnlyIsNumeric(txtCash.Text.ToString()) == false)
txtCash.Text = "";

در نتیجه کاربر با وارد کردن رشته کرکتر کل متن پاک می شود . من تقریبا چنین چیزی را می خوام
متشکرم

sepelloo
سه شنبه 18 اردیبهشت 1386, 01:48 صبح
اگر از dataGridView استفاده کنید می تونید به راحتی فرمت ورودی را عدد تعیین کنید
اما در یتا گرید را نمی دانم.

Sorenaa_s
سه شنبه 18 اردیبهشت 1386, 12:48 عصر
می تونید از DataGridTextBox ارث برده و مشابه کدی که در TextBox نوشتید رو تو این بنوسید و از این کلاس استفاده تو DataGrid

ghafoori
سه شنبه 18 اردیبهشت 1386, 21:37 عصر
دوستان عزیز این پست فکر کنم به سوال شما نزدیک باشه
http://www.barnamenevis.org/forum/showthread.php?t=63226&highlight=masked