I have created an application to encrypt selected files with password protection, it will accept files like word and pdf, everything work perfect and i ma finished with its development.
And now i have to add functionality to add an entry to system explorer context menu (right click menu) to have my application icon and menu entry on it. as user select multiple files and right click on them, my application icon and menu entry will appear over then and by selecting that, i need to select all that files to my main application for encryption process.
I have searched over Google and found some solutions but its only show some registry key to enter, but there is nothing to show how to handle all event, how to add icon to menu. i have also found one article over code project but its written in c++, and i need in c#.
So can any body has any idea or example using c#, or any wrapper or helper class to register/unregistered context menu entry for my application etc.
I want to do same as winzip or winrar or notepad++ application add their entry to system context menu with the icon on menu as well.
I have an small issue of adding an XML nodelist to a datagrid. It is as follows:
I have a few code blocks that read in the nodelist from an XML file that I was able to find in several forums starting with this one which I have tweaked to suit. I am grabbing the proper nodelist (ServiceHistory) and all works well unti I try and add custom columns etc.
public static DataTable ConvertXmlNodeListToDataTable(XmlNodeList xnl)
DataTable dt = new DataTable();
string strOpCode, strDescription; //set up error code vars
int TempColumn = 0;
foreach (XmlNode node in xnl.Item(0).ChildNodes)
DataColumn dc = new DataColumn(node.Name, System.Type.GetType("System.String"));
if (node.Name == "Operation") //Need to get the OpCode and Descriptions out
CodesDesc(node.InnerText, out strOpCode, out strDescription);
The CodeDesc void is used to break strings out one of the nodes(<operation>) and into 2 new data columns. I am having trouble figuring out just how to go about adding the columns I want(the OpCode and Description columns) and get the strings from the Operations.Innertext into those.
public static void CodesDesc(string OpsText, out string strOpCode, out string strDescription)
int Lpos = OpsText.IndexOf("*");
int Rpos = OpsText.LastIndexOf("*") +1;
<?xmlversion="1.0"encoding="UTF-8"?><api:replyxmlns:api="http://www.site.com/api"version="1.0"><Session><Replytype="Connection"><ErrorMessage/><ErrorCode>0</ErrorCode></Reply><Replygroup="T1G1"object="ServiceHistory"type="Get"><ServiceHistory><RecordID>XF301274*9929</RecordID><SWR>661</SWR><Operation>BSRS*IBN****REPAIR RIGHT SIDE DAMAGE</Operation><PartsAmount>31.20</PartsAmount><LaborAmount>543.00</LaborAmount></ServiceHistory><ServiceHistory><RecordID>XF301274*9929</RecordID><SWR>661</SWR><Operation>RP*IBN****REFINISH & PAINT DAMAGED AREA</Operation><PartsAmount>0.00</PartsAmount><LaborAmount>351.00</LaborAmount></ServiceHistory><ServiceHistory><RecordID>XF301274*9929</RecordID><SWR>661</SWR><Operation>PM*IPM****PAINT & MATERIAL</Operation><PartsAmount>0.00</PartsAmount><LaborAmount>198.90</LaborAmount></ServiceHistory><ErrorMessage/><ErrorCode>0</ErrorCode></Reply></Session></api:reply>
I apologize. Let me try an explain further. I need to split the Operation Element innertext which is being done. The issue is trying to get that text into the datatable row properly. I have modified the function some to add columns as I know what those are going to be. It is the childnode values that change and I need to take Operation childnode and change the loop to add the OpCode and Description strings rather than the Operation childnode innertext.
publicstatic DataTable ConvertXmlNodeListToDataTable(XmlNodeList xnl)
DataTable dt = new DataTable();
string strOpCode, strDescription; //set code vars
int ColumnsCount = dt.Columns.Count;
for (int i = 0; i < xnl.Count; i++)
DataRow dr = dt.NewRow();
for (int j = 0; j < ColumnsCount; j++)
if (xnl.Item(i).ChildNodes[j].Name == "Operation")
CodesDesc(xnl.Item(i).ChildNodes[j].InnerText, out strOpCode, out strDescription);
dr[j] = strOpCode.ToString();
dr[j+1] = strDescription.ToString();
dr[j] = xnl.Item(i).ChildNodes[j].InnerText;
Does this help clear things up? I amnot able to insert the text into the datarow properly during the for loop which iswhere my headaches are coming from..
I would like to know how the HTML source of ajax based sites can be read using HttpWebRequest / HttpWebResponse (That is reading the contents of a website at server side). The problem that I'm facing is that I'm unable to read parts of the webpage which uses Ajax or stuffs like UpdatePanel.
I don't know of any implementations that can scrape this.
Can anyone help, I am getting an object reference error in my code. All I am doing is adding two tables to one table, the tables that are being added are Genealogy Table and Relationship Table to Details Table.
The error is below:
An object reference is required for the non-static field, method, or property 'MvcGenealogy.Models.GRHolding.GetDetailID(System.Web.HttpContextBase)'
The error is part of a holding model, the code that is causing the error is below:
publicstatic GRHolding GetDetail(HttpContextBase context)
var detail = new GRHolding();
detail.GRHoldingID = GRHolding.GetDetailID(context);
It references the GetDetailID, the code is below and come from the same Model.GRHolding:
publicstring GetDetailID(HttpContextBase context)
if (context.Session[DetailsSessionKey] == null)
context.Session[DetailsSessionKey] = context.User.Identity.Name;
// Generate a new random GUID using System.Guid class
Guid tempDetailsID = Guid.NewGuid();
// Send tempDetailsID back to client as a cookie
context.Session[DetailsSessionKey] = tempDetailsID.ToString();
I do have a Session in my Model call DetailsSessionKey which is a string and identifies with the DetailsID. The code that declares this is here:
I think the problem is in my session because the error is with this line of code "detail.GRHoldingID = GRHolding.GetDetailID(context);", which under the GetDetail in my GRHolding.cs model. It is not converting it to a string properly. I think it is something minor in the session, can anyone help? All I am to doing is associating two tables, (Genealogy table and Relationship table), with one table, (Details table).
Ehm, that's actually beginner's stuff, isn't it?
detail.GRHoldingID = detail.GetDetailID(context);
assigns the return value of the GRHoldingID function to the GRHoldingID property.
From the code snippet you showed us, we can see that GRHoldingID returns a string.
From the error message, we can conclude that the GRHoldingID property is an integer.
Since we do not have more information about that class and its business rules, we cannot provide a "correct" solution safely.
You might change the GRHoldingID property to a string, or you might try to get an integer value from the string, i.e.
string strID = detail.GetDetailID(context);
if (int.TryParse(strID, out id))
detail.GRHoldingID = id;
// how do you want to handle this error case?
Last Visit: 31-Dec-99 19:00 Last Update: 30-Jan-23 18:53