PDA

View Full Version : سوال: باتون در ديتا گريد



fakhriamir
چهارشنبه 19 فروردین 1388, 15:59 عصر
من توي ديتا گريدم به ازاي هر رديف يه باتن دارم
مي خوام وقتي روي باتن کليک مي کنم يه پيام به کاربر بده
چيکار کنم؟؟

h.jaza
چهارشنبه 19 فروردین 1388, 16:39 عصر
من توي ديتا گريدم به ازاي هر رديف يه باتن دارم
داری، یا می خوای داشته باشی؟؟؟
اگر می خوای داشته باشی و نمی دونی چه جوری، جواب:
روی گرید ویو، با زدن مثلثش و ورود به Add Column یه ستون بساز و بعد Type اون رو روی DataGridViewButtonColumn بزار، اینجوری یه دکمه در اون ستون خواهی داشت و برای رویدادشم می تونی مثلا از CellContentClick یا خیلی های مشابه، استفاده کنی.

fakhriamir
چهارشنبه 19 فروردین 1388, 17:19 عصر
دارم روي باتن که کليک مي کنم نمي دونم چطوري با چه اونتي بر مي گرده

h.jaza
چهارشنبه 19 فروردین 1388, 17:43 عصر
به عنوان مثال می تونی اینجوری بنویسی:



private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == /*Index Of Button Column*/)
{
//Do Whatever You Want...
}
}

fakhriamir
چهارشنبه 19 فروردین 1388, 18:46 عصر
اين که اگر روي سل ايمنر کني فراخواني مي شه
مي خوام کليک کنم نه اينتر
راه حل ديگري براش پيدا کردم ممنون

h.jaza
چهارشنبه 19 فروردین 1388, 18:50 عصر
منظور از رویداد CellEnter، وارد شدن بهش هست نه صرفا Enter زدن روش، این ورود می تونه هم به شکل زدن کلید Enter باشه و یا کلیک کردن روش و یا با tab رفتن به داخلش و یا هر نوع ورود دیگه که خیلی کامل تر هستش ولی اگر نه می خوای که فقط با کلیک کردن روش، کد مورد نظرت اجرا بشه، خوب همون رویداد CellContentClick یا CellClick می تونه گزینه های خوبی باشه.

thelastphoenix
چهارشنبه 19 فروردین 1388, 19:06 عصر
با سلام
باید بصورت دستی خودت ایونت بنویسی
ولی کاره خیلی مشکلی و ریاد ازیت می کنه..
زیادم باگ داره داری با گیرید کار م یکنی مواظب باش

thelastphoenix
چهارشنبه 19 فروردین 1388, 19:10 عصر
منظور از رویداد CellEnter، وارد شدن بهش هست نه صرفا Enter زدن روش، این ورود می تونه هم به شکل زدن کلید Enter باشه و یا کلیک کردن روش و یا با tab رفتن به داخلش و یا هر نوع ورود دیگه که خیلی کامل تر هستش ولی اگر نه می خوای که فقط با کلیک کردن روش، کد مورد نظرت اجرا بشه، خوب همون رویداد CellContentClick یا CellClick می تونه گزینه های خوبی باشه.

زمانی که درون یک سل باتون داشته باشه این کار درست نیست درست کار نمی کنه
نمی تونی با ایونت cellenter اینا باتون که توشه ...
باید از ایونت مخصوص گرید باتون استفاده منی و دستی ایونت مختلف رو کد کنی..

h.jaza
چهارشنبه 19 فروردین 1388, 19:11 عصر
باید بصورت دستی خودت ایونت بنویسی
ولی کاره خیلی مشکلی و زیاد ازیت می کنه..
زیادم باگ داره داری با گیرید کار م یکنی مواظب باش

چرا، چرا، چرا؟؟؟!!!
میشه توضیح بدی؟؟؟
1. چرا باید دستی ایونت نوشت؟
2. چه مشکلی داره؟
3. کجا اذیت می کنه؟
4. چه باگی داره؟
5. مشکل گرید چیه؟

thelastphoenix
چهارشنبه 19 فروردین 1388, 19:13 عصر
منظور از رویداد CellEnter، وارد شدن بهش هست نه صرفا Enter زدن روش، این ورود می تونه هم به شکل زدن کلید Enter باشه و یا کلیک کردن روش و یا با tab رفتن به داخلش و یا هر نوع ورود دیگه که خیلی کامل تر هستش ولی اگر نه می خوای که فقط با کلیک کردن روش، کد مورد نظرت اجرا بشه، خوب همون رویداد CellContentClick یا CellClick می تونه گزینه های خوبی باشه.
دوست عزیز کلا حرفتون درسته ولی این ایونت ها واسه سل و برای ایونت مخصوص باتون داخلش
کمکی نمی کنه باید ایونت مخصوص گیرید باتن رو دستی کد کنی که کار مشکلی هست

thelastphoenix
چهارشنبه 19 فروردین 1388, 19:19 عصر
چرا، چرا، چرا؟؟؟!!!
میشه توضیح بدی؟؟؟
1. چرا باید دستی ایونت نوشت؟
2. چه مشکلی داره؟
3. کجا اذیت می کنه؟
4. چه باگی داره؟
5. مشکل گرید چیه؟

چه خبره!!

object درون سل ایونت مخصوص خودشون دارن
به msdn سر بزن تات کد که از object درون سل استفاده کرده و ایونت نوشته ببین
که ایونت هندلر دستی نوشته...
کار کردن با این ابجکت سخته اگه 10000 رو داشته باشی می خوای چی کار کنی!!
کار سخت می کنه
گیرید معمولی که در .net باگ زیاد داره و اگه بخوای رو ایونت سل ها کار کنی ومخصوصا
currentcel اینا به بعضی باگ بر می خوری...

h.jaza
چهارشنبه 19 فروردین 1388, 19:20 عصر
دوست عزیز، اشتباه می گی، همین الان من هر سه شون رو تست کردم، هیچ مشکلی نداره، کاملا بدون عیب و نقص جواب میده.
فایل ضمیمه هم می تونی نگاه کنی...