Defaulting valid value in BeforeFieldChange

While customizing the Capture COS/WIP Activity screen I’ve found that resetting the proposed value for EndingDate will not update properly. I’m able to see the message box or throw an exception, but the code to set the proposed value to current date is not working properly. At least as I understand it should. The code leaves the value set to the user selected value.

	private void CaptureCOSWIPParam_BeforeFieldChange(object sender, DataColumnChangeEventArgs args)
	{
		// ** Argument Properties and Uses **
		// args.Row["FieldName"]
		// args.Column, args.ProposedValue, args.Row
		// Add Event Handler Code
		switch (args.Column.ColumnName)
		{
			case "EndingDate":
				DynamicQueryAdapter dqa = new DynamicQueryAdapter(oTrans);
				dqa.BOConnect();
				dqa.ExecuteByID("0_SF_CurrentClosePeriod"); // Returns 1 row of oldest period not closed.
															// Columns 0 based.  Column 3 is start date, Column 4 is end date.
				DateTime dtProposed = Convert.ToDateTime(args.ProposedValue.ToString());
				DateTime currentEndDate = Convert.ToDateTime(dqa.QueryResults.Tables["Results"].Rows[0][4].ToString());
				if ( dtProposed > currentEndDate)
				{
					args.ProposedValue = currentEndDate;
					MessageBox.Show("Invalid Ending Date " + dtProposed.ToString("MM/dd/yyyy") + ".\r\nMax date based on closing period is " + currentEndDate.ToString("MM/dd/yyyy"));
					//throw new Exception("Invalid Ending Date " + dtProposed.ToString("MM/dd/yyyy") + ".\r\nMax date based on closing period is " + currentEndDate.ToString("MM/dd/yyyy"));
				}
				break;
		}
	}