I have 2 radiobuttons, each button has a loop in it. The problem is that I need to click a radio button 2 to 3 times before it gets selected. I know my code is clumsy and would appreciate some help in cleaning it up. Mostly in getting an easy selection of the radio buttons.
Thanks

//EIO0 Analog Input Section
private: System::Void rdoEIO0AnIn_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {

this->lblEIO0d->Text=" ";
LoopOn1=TRUE;
LoopOn2=FALSE;

//Set EIO0 to Analog Input
ePut (lngHandle, LJ_ioPUT_ANALOG_ENABLE_BIT, 8, 1, 0);

//Loop
while(LoopOn1=TRUE){

//Read EIO0 (Channel 8)
lngErrorcode=eGet(lngHandle,LJ_ioGET_AIN,8,&valEIO0,0);

//Send analog value stored in valEIO0 to label lblEIO0 after converting to string
this->lblEIO0->Text=valEIO0.ToString("0.00");

HWND hwnd = ::FindWindow(NULL,TEXT("LabJack U3"));
DoEvents(hwnd);

//One second delay
time_t start_time, cur_time;
time(&start_time);
do
{
time(&cur_time);
}
while((cur_time - start_time) < 1);



if(rdoEIO0AnIn->Checked ==false){
break;

}
}
}

//EIO0 Digital input section
private: System::Void rdoEIO0DlIn_CheckedChanged(System::Object^ sender, System::EventArgs^ e) {


this->lblEIO0->Text =" ";
LoopOn2=TRUE;
LoopOn1=FALSE;

//Set EIO0 to digital I/O
ePut(lngHandle,LJ_ioPUT_ANALOG_ENABLE_BIT, 8,0,0);

while(LoopOn2=TRUE){
//Read EIO0 (Channel 8)
lngErrorcode=eGet(lngHandle,LJ_ioGET_DIGITAL_BIT,8,&valEIO0d,0);

//Send analog value stored in valEIO0 to label lblEIO0 after converting to string
//this->lblEIO0d->Text=valEIO0d.ToString();
//If valEIO0 is 1 send "High" to textbox
if ( valEIO0d == 1){
this->lblEIO0d->Text="High";
}

//If valEIO0 is 0 send "Low" to textbox
if ( valEIO0d == 0){
this->lblEIO0d->Text="Low";
}

//If for any reason anything other then 1 or 0 is outputted send "Error" to textbox
else {
this->lblEIO0->Text="Error";
this->lblEIO0->Text=" ";

}

HWND hwnd = ::FindWindow(NULL,TEXT("LabJack U3"));
DoEvents(hwnd);


time_t start_time, cur_time;
time(&start_time);
do
{
time(&cur_time);
}
while((cur_time - start_time) < 1);

if(rdoEIO0DlIn->Checked ==false){
break;

}

}
}


// This function simply processes any messages when called
// To call use DoEvents(hwnd);

int DoEvents(HWND hwnd)
{
MSG msg;
//while(PeekMessage(&msg, GetSafeHwnd(), 0, 0, PM_REMOVE))
while ( PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;
}

};
}