หน้าเว็บ

วันพฤหัสบดีที่ 25 มีนาคม พ.ศ. 2553

.net 2 กับ ActiveControl ที่ขัด ๆ กับที่คิดไว้

เดิมใน .net 1.1 ถ้าเรียกใช้ ActiveControl จะบ่งถึงตัว Control ที่กำลัง Active อยู่ แต่ใน .net 2 จะบอกตามชั้นคือ

Form
 |-- UserControl
       |-- Button

ขณะที่ Button กำลัง Active และเรียก property ActiveControl เราจะได้ค่า "UserControl" แทนที่จะเป็น Button

Work around

Control activeControl = base.ActiveControl;
if (activeControl is IContainerControl)
{
    IContainerControl container = activeControl as IContainerControl;
    activeControl = container.ActiveControl;
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น