PDA

View Full Version : ضرب دو عدد در هم که به صورت رشته داخل سلول دیتا گرید وارد شده است



winner1
پنج شنبه 08 آبان 1393, 12:05 عصر
سلام رفقا خسه نباشین من یه عبارت دارم مثلا 2*2 بعد مشکل اینجاس او ستونی که این باید وارد بشه از نوع عددی هستش و دیتاگرید اجازه cell end edit رو زمانی کارکتر غیر عددی هس نمیده لطفا راهنماییم کنین

pedram.11
پنج شنبه 08 آبان 1393, 18:28 عصر
سلام میتونید هنگام شروع ادیت نوع قبلی رو ذخیره و نوع سلول رو به آبجکت تغییر بدید. بعد که کار تموم شد متن رو پردازش کنید و نوع سلول رو به حالت قبل برگردونید:

private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridViewCell c = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (c.ValueType != typeof(Object))
{
dataGridView1.Tag = c.ValueType;
c.ValueType = typeof(Object);
}
}
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
DataGridViewCell c = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
string data = c.Value.ToString();
string[] parts = data.Split('*');
int r = int.Parse(parts[0]) * int.Parse(parts[1]);
c.Value = r;
c.ValueType = (Type)dataGridView1.Tag;
}

البته اگه این کار عملی شد قسمت محاسبه اعداد رو درست کنید این فقط ضرب دوتایی رو انجام میده :لبخند:

winner1
جمعه 09 آبان 1393, 12:32 عصر
دمت گرم دادشم منم تقریبا همین کارو انجاام دادم با این تفاوت که دیتامو داخل qury تبدیل به رشته کردم:قلب: