|
What is the problem in sharing same event handler ?
|
|
|
|
|
Each button performs a different task.
|
|
|
|
|
Again, so what ?
The sender passed into the event is your button, you can use the Tag property to identify your action and use one event for all your buttons.
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
pkruger wrote: myCmd.Click += new System.EventHandler(cmdOK_Click);
is where you're specifying the event handler.
Why not put this line in a switch block or similar then you can change the method called depending on the criteria you're testing for.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Expect everything to be hard and then enjoy the things that come easy. (code-frog)
|
|
|
|
|
Hello,
I am designing an application where data is stored in files. My file is in XML format so that I can easily manipulate it's data. Everything worked really well so far. Recently we are getting many support mails which says the program showing some weird errors. We have found that it is mainly because people open the file in a text editor and edited the XML data manually.
I am looking for a method which will prevent users from editing it. How do you guys usually manage it ? Any suggestions ?
|
|
|
|
|
Hide the files.
Giorgi Dalakishvili
#region signature
my articles
#endregion
|
|
|
|
|
Thanks,
But that's not a reliable way as it can be made visible by the user. Any other suggestions ? How about writing the XML content into a binary file ?
|
|
|
|
|
Hi ! is your xml file large?
Do you load it entierly when executing your program?
if you load your xml file into an object you can do a binary serialization. You save your object or array of objects into a binay file.
When executing your program you can load this file at start up.
|
|
|
|
|
That's a brilliant suggestion. I will check it.
|
|
|
|
|
Hi !
Just you have to be sure that when you serialize or deserialize your object you MUST keep the same class structure (same fields, same names, sames types)
regards
|
|
|
|
|
In the past I've used xml in memory and used simple encryption/decryption for writing to disk.
This can slow stuff down a little though. Alternatively, encrypt just the tag contents rather than the xml file - but make sure the encryption only uses characters that are going to be valid.
DaveBTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)Expect everything to be hard and then enjoy the things that come easy. (code-frog)
|
|
|
|
|
Hi there.
I've installed Windows XP(SP2), Microsoft Office 2003 and Visual Studio 2005 on my computer. And there is such an error.
I need to create or open Excel document from my application. I've wrote some code here.
using Core = Microsoft.Office.Core;
using Word = Microsoft.Office.Interop.Word;
using Excel = Microsoft.Office.Interop.Excel;
private void button1_Click(object sender, EventArgs e)
{
object oMissing = System.Reflection.Missing.Value;
Word.Application app = new Word.ApplicationClass();
app.Visible = true;
Word.Document doc = app.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);
Word.Range rng = doc.Content;
rng.InsertAfter("Some text.");
rng.InsertParagraphAfter();
rng.InsertAfter("new paragraph");
}
private void button2_Click(object sender, EventArgs e)
{
try
{
object oMissing = System.Reflection.Missing.Value;
Excel.Application app = new Excel.ApplicationClass();
app.Visible = true;
Excel.Workbook wb = app.Workbooks.Add(oMissing);
}
catch (Exception error)
{
MessageBox.Show(error.ToString());
}
}
The Word application starts normally and there is no problems with new document creation.
The Excel application also starts normally, but there is problem when I'm trying to create new workbook.
Here is error message
System.Runtime.InteropServices.COMException (0x80028018): Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
at Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template)
at WindowsApplication1.Form1.button2_Click(Object sender, EventArgs e) in C:\Documents and Settings\Davit\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\Form1.cs:line 40
I've also tried to create new workbook with xlWBATWorksheet template
Excel.Workbook wb = app.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
but I get the same error.
The Open function doesn't work too.
The same code was working when there were Windows Vista and Office 2007 installed on my computer.
Please help me to solve this problem.
|
|
|
|
|
Its probably similar to the probably when I tried creating Excel charts. It worked well with Office 2003 but not with Office 2007. I would suggest to use Reflection .( It worked for me, might work for you as well.)
|
|
|
|
|
Thanks for your answer.
What you mean under Reflection? Is it System.Reflection class, how can I use it?
Thanks
|
|
|
|
|
dsamvelyan wrote: System.Reflection class
Its a namespace.
You use it to create instance of Excel object at runtime using Assembly.CreateInstance . And then create or open file using this object. You can find on google about writing code using reflection.
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
|
|
|
|
|
Assembly assembly = Assembly.LoadFrom(@"C:\WINDOWS\assembly\GAC\Microsoft.Office.Interop.Excel\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll");
object obj = assembly.CreateInstance("Microsoft.Office.Interop.Excel.ApplicationClass");
Excel.Application app = obj as Excel.ApplicationClass;
app.Visible = true;
Excel.Workbook wb = app.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
I have same error in this code!
|
|
|
|
|
This works for me!!
objClassType = Type.GetTypeFromProgID("Excel.Application");
oExcelApp = Activator.CreateInstance(objClassType);
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be 'meetings'." - Dave Barry
|
|
|
|
|
|
How would I write a regular expression of,
the set of binary strings NOT containing 01 as a substring
Thanks
|
|
|
|
|
I would recommend buying the book 'Mastering Regular Expressions' and downloading the program 'Expresso' to master basic regex.
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
Try this :
string result = Regex.Replace(inputString, @"(01)", "");
|
|
|
|
|
Thanks alot for yr response all. I am actually trying to find just a mere regular expression for a set of binary string that doesn't contain 01 as a substring.
I am not doing any coding in a program at the moment.Tried searching on expresso but no clue.
|
|
|
|
|
|
Yes I did. Thank you very much for the guidance.
|
|
|
|
|
You're welcome
|
|
|
|