The easy part: create a form with a SmartPartPlaceholder on it.
Second: provide a property like this:
public UserControl SmartPart
{
get { return (UserControl)smartPartPlaceholder1.SmartPart; }
set { smartPartPlaceholder1.SmartPart = value; }
}
Third:
From within a presenter make a call like this:
internal void EditCompany(int id)
{
CompanyDetailView view = WorkItem.SmartParts.AddNew<CompanyDetailView>("CompanyDetails");
SmartFormBase frm = new SmartFormBase();
frm.SmartPart = view;
frm.ShowDialog();
WorkItem.SmartParts.Remove(view);
}
This will display your smartpart inside a normal Windows form.