Hi,
I am attempting to create a manual type of contextmenu for a radgroupbox. I add radiobuttons to the radgroup box, then 2 menu items, one is Add MA, the other is Remove MA. The Add MA should expand to the right and then down and show the selection of MA's to add. The remove would of course getElementAt and remove one of the radiobutton controls. Every attempt I have made the second menuitem never opens up. Code is below, any help would be apprecaited.
private void setup_ma() |
{ |
// Intialize MA object |
ma_list = new sch_objects.MA_List(profile_list.Locationid, profile_list.Installerid); |
ma_add_menu = new Telerik.WinControls.UI.RadDropDownMenu(); |
ma_all_menu = new Telerik.WinControls.UI.RadDropDownMenu(); |
// Create RadioButton grouped list in groupbox to display primary button with radio, not selectable |
int count = ma_list.MA_list_forinstallerID.Rows.Count; |
Telerik.WinControls.UI.RadRadioButton[] radio_btn = new Telerik.WinControls.UI.RadRadioButton[count]; |
DataRow row; |
Telerik.WinControls.UI.RadMenuItem main_item; |
// Array of MA's in Installer Profile |
for (int i = 0; i < count; i++) |
{ |
row = ma_list.MA_list_forinstallerID.Rows[i]; |
radio_btn[i] = new Telerik.WinControls.UI.RadRadioButton(); |
radio_btn[i].Text = row["ma"].ToString(); |
radio_btn[i].Name = "rb" + radio_btn[i].Text; |
radio_btn[i].Location = new Point(12, 21 * (i+1)); |
if ((bool)row["primaryma"]) |
{ |
radio_btn[i].ToggleState = Telerik.WinControls.Enumerations.ToggleState.On; |
radio_btn[i].Text = radio_btn[i].Text + " [Primary]"; |
} |
// For Toggling Primary MA |
radio_btn[i].Click += new EventHandler(MA_Clicked); |
// For manually opening a right click context menu |
radio_btn[i].MouseDown += new MouseEventHandler(ma_radio_mousedown); |
} |
// Add "Add" button to group |
Telerik.WinControls.UI.RadMenuItem[] item = new Telerik.WinControls.UI.RadMenuItem[ma_list.MA_list_forlocid.Rows.Count]; |
int item_counter = 0; |
foreach (DataRow ma_row in ma_list.MA_list_forlocid.Rows) |
{ |
// Create MA's for add group |
item[item_counter] = new Telerik.WinControls.UI.RadMenuItem(); |
item[item_counter].Text = ma_row["ma"].ToString(); |
item[item_counter].Name = "RI" + ma_row["ma"].ToString(); |
item[item_counter].Click += new EventHandler(add_ma_click); |
foreach (Telerik.WinControls.UI.RadRadioButton radio in radio_btn) |
{ |
if (radio.Name == ma_row["ma"].ToString()) |
{ |
// Delete from group if they already exist in groupbox |
item[item_counter].Enabled = false; |
} |
} |
item_counter++; |
} |
// Menu MA "Add" Dropdown menu |
main_item = new Telerik.WinControls.UI.RadMenuItem("Add"); |
ma_add_menu.Items.Add(main_item); |
ma_all_menu.Items.Add(main_item); |
// Add MA Group to "Add" menuitem |
main_item.Items.AddRange(item); |
// Add "Remove MA" button to group, get MA by element location later |
Telerik.WinControls.UI.RadMenuItem sec_item = new Telerik.WinControls.UI.RadMenuItem("Remove MA"); |
sec_item.Click += new EventHandler(remove_ma_click); |
ma_all_menu.Items.Add(sec_item); |
ma_groupbox.MouseDown += new MouseEventHandler(ma_groupbox_MouseDown); |
ma_groupbox.Controls.AddRange(radio_btn); |
} |
void ma_radio_mousedown(object sender, MouseEventArgs e) |
{ |
if (e.Button == MouseButtons.Right) |
{ |
ma_all_menu.Show(ma_groupbox, e.Location); |
} |
} |
void ma_groupbox_MouseDown(object sender, MouseEventArgs e) |
{ |
if (e.Button == MouseButtons.Right) |
{ |
ma_add_menu.Show(ma_groupbox, e.Location); |
} |
} |