PDA

View Full Version : مشکل در gridview



hojjat_gh
شنبه 19 مرداد 1387, 14:10 عصر
با سلام
دوستان من یه مشکل در گرید ویو دارم:
من مخوام زمانی که دارم سل گریدم رو پر میکنم مقدار اون داخل یه تکست باکس که زیر دیتا گریدمه ریخته بشه(به شکل همزمان)وبرای این کار کدهاش رو داخل keydown گریدم ریختم ولی جواب نمیده (البته حالتهای دیگه رو هم امتحان کردم مثل keyup,keypress)و کلا کلیدهای حروف الفبا درحالت keydown گریدم کار نمیدن
ضمن اینکه حالت برعکس اون رو امتحان کردم(از تکس باکس بریزه تو سل گرید) و خوب جواب میده وکدهاش به شکل زیره:

(""= ! textBox1.Text)اگر
}
; dataGridView1.CurrentRow.Cells[0].Value= textBox1.Text
{

که کد رو داخل keydown تکس باکس نوشتم
ولی برا حالت برعکس نشد اگه از دوستان کسی راه حلی داره ممنون میشم راهنمایی کنه

hojjat_gh
شنبه 19 مرداد 1387, 17:39 عصر
واقعا کسی راه حلی نداره؟

tthenry14plus
یک شنبه 20 مرداد 1387, 02:22 صبح
بالاخره میخوایید وقتی توی یکی از فیلد های دیتاگرید متنی رو وارد میکنید داخل Textox هم وارد بشه یا بالعکس ؟؟؟؟
سوالتون با کدی که نوشتید تناقض داره ...

hojjat_gh
یک شنبه 20 مرداد 1387, 08:23 صبح
دوست عزیز این کد برا زمانیه که از تکس باکس بخوام بریزم تو گرید ویو
حالا من میخوام از گرید ویو بریزم تو تکس باکس

tthenry14plus
یک شنبه 20 مرداد 1387, 19:33 عصر
خاصیت ها KeyDown, KeyPress و KeyUp در دیتاگرید فقط زمانی کار میکنند که خاصیت ReadOnly دیتاگرید False باشه، ازین رو باید از خاصیت KeyPress فرم استفاده کنید.
اگر KeyPreview فرم True باشه، در هر جایی از فرم کلیدی فشرده بشه می تونید از رویدادهای KeyDown, KeyPress و KeyUp برای تشخیص کلید فشرده شده استفاده کنید.
کدهای زیر جوابگوی خواسته شما خواهد بود:


//دیتاگرید نسبت بدید CellBeginEdit تابع زیر رو به

privatevoid dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
textBox1.Text = dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
this.KeyPreview = true;
this.KeyPress += newKeyPressEventHandler(Form1_KeyPress);
}

//دیتاگرید CellEndEdit و تابع زیر رو به

privatevoid dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
this.KeyPreview = false;
this.KeyPress -= newKeyPressEventHandler(Form1_KeyPress);
}

//هنگام شروع عمل ویرایش تابع زیر فعال میشه و پس از پایان عمل ویرایش غیر فعال ...

void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsLetter(e.KeyChar) || char.IsControl(e.KeyChar))
if ((int)e.KeyChar == 8) textBox1.Text = textBox1.Text.Length > 0 ? textBox1.Text.Substring(0, textBox1.Text.Length - 1) : "";
else
textBox1.Text += e.KeyChar.ToString();
}

فکر نمیکنم ابهامی در کدها باشه .
موفق باشید...

royaj111111
یک شنبه 20 مرداد 1387, 20:17 عصر
من هم همين مشكل رو داشتم
ممنون از همه

Mehraein
دوشنبه 21 مرداد 1387, 01:15 صبح
منم یه همچین کاری میخواستم بکنم ولی نشد ، از جناب hojjat_gh (http://barnamenevis.org/forum/member.php?u=71745) که این سوالو مطرح کردند و از جناب tthenry14plus (http://barnamenevis.org/forum/member.php?u=43949) که به این سوال پاسخ کامل دادند تشکر می کن.
و به royaj111111 (http://barnamenevis.org/forum/member.php?u=60082) هم یاداور میکنم که جزئی از قوانین سایت اینکه که برای تشکر از دکمه مخصوص اون استفاده کنند نه با زدن پیام تشکر ...