Reputation: 3
Not sure exactly whats going on here as it does not give me an error message when I am trying to run this part of the code.
Basically its supposed to put the text from the dictionary into a richtextbox when the option is selected from the drop down menue
Like if I select "Outage" from the drop down it should put the contents of that into the richtextbox
public partial class Form1 : Form
{
public Dictionary<string, string> templates = new Dictionary<string, string>();
public Form1()
{
// Templates
templates.Add("Outage", "Server Name: \nTest: \nTest (test): \n");
templates.Add("Out", "test: \nTest: \nTest:");
templates.Add("Custom", @"C:\Users\johnathan_jackson\Downloads\Remedy Tool\Templates\custom templates\test.txt");
templates.Add("Test", "Server Name: \nTest: \nTest: \n");
templates.Add("Basic", "OS: \nIP Address: \nApplications affected: \nWhen did this last work: \n Number of users affected: \nSpecific error message: \nTroubleshooting steps taken \nDetailed Resolution \nIf not service resolvable, Why:");
templates.Add("Xerox", "Serial Number (mandatory): \nAsset Number: \nContact Phone Number: \nContact e-mail address: \nFull Address: \nDescription of the Supplies that are needed: \nPart # (if customer has it): \nError message (if any): \nLocation (Building/Floor/etc): \nModel #: \n");
NavigateURL navigateBrowser = new NavigateURL();
InitializeComponent();
Remedy_Automate.AllowNavigation = true;
Remedy_Automate.ScriptErrorsSuppressed = true;
Remedy_Automate.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(navigateBrowser.DocumentState);
// GetInfo from Remedy to these controls
navigateBrowser.cIncidentID = incidentID_Entry;
navigateBrowser.cEmployeeID = employeeID_Entry;
navigateBrowser.cEmployeeName = employeeName_Entry;
navigateBrowser.cPhoneNumber = phoneNumber_Entry;
navigateBrowser.cNotes = Notes_Entry;
getinfo.Click += new System.EventHandler(navigateBrowser.GetInfoClick);
sendinfo.Click += new System.EventHandler(navigateBrowser.ModifyInfo);
browserTabControl.Selecting += browserTabControl_Selecting;
browserTabControl.HandleCreated += browserTabControl_HandleCreated;
wTemplates.DropDownStyle = ComboBoxStyle.DropDownList;
// set browser control in 'cNavigateURL' class
navigateBrowser.BrowserInstance = Remedy_Automate;
navigateBrowser.NavigateToUrl("http://fit.honeywell.com/arsys");
}// Form1
private void sendinfo_click(object sender, EventArgs e)
{
string notestext = Notes_Entry.Text;
Console.WriteLine(notestext);
}
private void template_selected(object sender, EventArgs e)
{
String pTempText = wTemplates.Text;
Console.WriteLine(pTempText);
switch(pTempText)
{
case "Outage":
Notes_Entry.Text = templates[pTempText];
break;
case "Basic":
Notes_Entry.Text = templates[pTempText];
break;
case "Custom":
Notes_Entry.Text = templates[pTempText];
break;
case "Out":
Notes_Entry.Text = templates[pTempText];
break;
}
Upvotes: 0
Views: 1660
Reputation: 36
I don't see where your binding your Dictionary to your combo box. You need to add the following:
wTemplates.DisplayMember = "Key";
wTemplates.ValueMember = "Value";
wTemplates.DataSource = new BindingSource(templates, null);
I would also recommend that you add another entry at the top of your dictionary so that Item 0 is not a real choice, such as ("Select Item", ""). This is because the selected_item event will fire when your combo box gets filled the first time.
So your code would look like this in the Form1():
// Templates
templates.Add("Select Item", "");
templates.Add("Outage", @"Server Name: \nTest: \nTest (test): \n");
templates.Add("Out", @"test: \nTest: \nTest:");
templates.Add("Custom", @"C:\Users\johnathan_jackson\Downloads\Remedy Tool\Templates\custom templates\test.txt");
templates.Add("Test", @"Server Name: \nTest: \nTest: \n");
templates.Add("Basic", @"OS: \nIP Address: \nApplications affected: \nWhen did this last work: \n Number of users affected: \nSpecific error message: \nTroubleshooting steps taken \nDetailed Resolution \nIf not service resolvable, Why:");
templates.Add("Xerox", @"Serial Number (mandatory): \nAsset Number: \nContact Phone Number: \nContact e-mail address: \nFull Address: \nDescription of the Supplies that are needed: \nPart # (if customer has it): \nError message (if any): \nLocation (Building/Floor/etc): \nModel #: \n");
wTemplates.DropDownStyle = ComboBoxStyle.DropDownList;
wTemplates.SelectedIndexChanged += template_selected;
wTemplates.DisplayMember = "Key";
wTemplates.ValueMember = "Value";
wTemplates.DataSource = new BindingSource(templates, null);
Then have the handler actually have the code in it.
private void template_selected(object sender, EventArgs e)
{
String pTempText = wTemplates.Text;
Console.WriteLine(pTempText);
switch (pTempText)
{
case "Outage":
Notes_Entry.Text = templates[pTempText];
break;
case "Basic":
Notes_Entry.Text = templates[pTempText];
break;
case "Custom":
Notes_Entry.Text = templates[pTempText];
break;
case "Out":
Notes_Entry.Text = templates[pTempText];
break;
}
}
Upvotes: 2