comboBox_SelectionChangeCommitted
با سلام فراوان، به بلندای یافتن جواب
یک مورد فوق جالب:
وقتی رویداد comboBox_SelectedIndexChanged صدا زده می شود، یک اتفاق جالبی می افتد که در مورد comboBox_SelectionChangeCommitted صادق نیست.
رویداد comboBox_SelectionChangeCommitted صبر می کند تا کاربر مقداری را از کمبو باکس انتخاب کند. یعنی ساکت و بی آزار و اذیت است و تا وقتی که از او کاری نخواسته اید و پا روی دمش نگذاشته اید ، کاری به کار شما ندارد،
امـــــــــــــــــــــــ ـــــا
جناب comboBox_SelectedIndexChanged، اصولاً به هر کاری کار دارد و هنوز فرم بارگذاری نشده(load نشده) ، خود را فرا می خواند. مشکل از اینجا شروع می شود که قبل از بار گذاری فرم ، ما valuemember نداریم، پس به جای یک مقدار واقعی، مقدار رشته ای System.Data.DataRowView باز گردانده می شود.
پس معلوم شد که قبل از بار گذاری فرم ، ما اصلاً مقداری برای جستجو در تابع Find نداریم ،برای همین است که خطای زیر را صادر می کند:
کد:
Input string was not in a correct format
حالا راهش چیست که از این مهلکه خلاص شویم؟
یک راهش استفاده از رویداد comboBox_SelectionChangeCommitted است. تمام کدهای گفته شده در رویداد comboBox_SelectedIndexChanged را به درون رویداد comboBox_SelectionChangeCommitted منتقل کنید.
کد:
private void comboBox2_SelectionChangeCommitted(object sender, EventArgs e)
{
}
و اما راه دوم:
راهی نداریم مگر اینکه جلوی فراخوانی رویداد comboBox_SelectedIndexChanged را قبل از بارگذاری فرم بگیریم.
چگونه؟
فعلاً نمی دانم.
comboBox_SelectedIndexChanged
با سلام
یک عدد جواب برای مشکل comboBox_SelectedIndexChanged که در پست قبل مطرح کرده بودم یافتم. هنوز امتحانش نکردم ولی انگار جوابی رویایی است. به ترتیب سه خط کد زیر دقت کنید.
کد:
comboBox2.DisplayMember = "LastName";
comboBox2.ValueMember = "EmployeeID";
comboBox2.DataSource = dataView2.Table;
منبع:
کد:
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/1a242eb7-1471-4895-a486-2ab8a32f1589/
همون طور که مشکل من حل شد، امیدوارم مشکل دوستانم هم که بعداً این تاپیک رو مشاهده می کنند نیز حل شود.
در پناه حق