|
PIEBALDconsult wrote: A) I don't think there's any need for including the NewLines.
B) Why step by one? Why not double methodCount after each successful compile?
Both excellent suggestions.
1) The NewLines was so I could preview the code during the initial stages of development. Same reason for the indents. I like even my autogenerated code to be neat and tidy.
2) Yup. Could have done a more efficient search, but was more interested in starting the app to get the result. By the time I had written the original and the slightly optimized version, I had spent 45 minutes and was getting tired of the exercise. And I thought that The Answer would actually be fairly low (thought it would probably be 256, 512 or 1024 max). I was surprised to see it climb over 2K, but kept expecting it to fail shortly.
It never did, so I published the snippet and the result and encouraged others to continue in the work.
The application was really intended as a starting point for figuring out the answer to this guys question. It was not a fully peer reviewed, optimized, documented, shrink-wrapped product, as you and others have adequately demonstrated by now...
Sean
|
|
|
|
|
Hi
I have written a code which will call a webservice.The name of the webservice is "XMLSportsIn" and have been configured in my local machine.Now when i executing the code which calls this webservice i am getting a error as below
{"Exception from HRESULT: 0x80072EE6"} System.Exception {System.Runtime.InteropServices.COMException}
i am not able to find why this error arises..i am just pasting my code which calls the webservice..
MSXML2.XMLHTTP40Class objXmlHTTP = new XMLHTTP40Class();
try
{
objXMLDocument.Load(objFI.FullName);
objXmlHTTP.open("POST", m_WebServiceName, null, null, null);
when i traced the code after the open method of objXmlHTTP, error arises.
Can any one please help me what to do to tackle this issue/
Advanced thanks
Regards
DilipRam
|
|
|
|
|
Why arent you using the normal way to implement a web service client in .NET?
|
|
|
|
|
You may need to check out InnerException property too.
|
|
|
|
|
Hi,
I have small but very annoying problem. My form contain tabcontrol with more tabpages. When I click on separate tabpage I want set focus to first textbox on selected tabpage. Second option for select tabpage is pressing keys from F1 to F8.
I tried set textbox as ActiveControl on this form and I tried set focus but it didn't work. I noticed in some cases when I press tab after selecting tabpage focus go to textbox. So I use SendKeys.Send("{Tab}"), but dont't work when I focus tabpage with pressing key.
I spent a lot of times to solve problem btu no success.
Has anybody solution for my problem?
Thanks in advance, Jure
|
|
|
|
|
Hi,
my first attempt would be to remove all fancy code (SendKeys, ActiveControl, ...)
and to set TabStop=true and TabIndex=0 for the control you want to get focus on a tab page.
If that is not sufficient, I would use the TabControl.SelectedIndexChanged event
Hope this helps.
|
|
|
|
|
Hi,
the use of Sendkeys or ActiveControl was just experiment from despair.
I already have set TabStop=true and TabIndex=0. When I run my code with debugger I can see than code where I set focus is called just before show new tabpage. But focus stay in textbox on previous tabpage.
Thanks anyway
|
|
|
|
|
Hi, again!
My problem is solved thanks to you. I move code from event TabControl.Selected to TabControl.SelectedIndexChanged as you have writen and now all work fine.
Thank you very much!
|
|
|
|
|
if (this.tabControl1.SelectedTab == this.tabPage1)
this.textBox1.Focus();
else if (this.tabControl1.SelectedTab == this.tabPage2)
this.textBox3.Focus();
That should do it.
|
|
|
|
|
Hi, I tried this again, but doesn't work. Focus stay in textbox on previous tabpage.
Thanks all the same.
|
|
|
|
|
When I obtain the content of the chip data, it shows the hex formatted display on the rich text format control...The entire content fits in the control well without the use of vertical scroll bar (which is enabled in the control properties)...
After obtaining the content of the new chip data, i used (rtfDispData.text = "") and the only first line clears up then display the new entire data (rich text control is refreshed)...
The interesting thing is that I have other chip that has more data in it and produced longer list of data, thus showing the vertical scroll bar. After dumping the big data again, the whole rich text control is cleared then display new data... (also used the same thing (rtfDispData.text = "")...
Why is this happening? seems that I have to use the vertical scroll bar to be seen in order to clear entire rtf control? I need to clear this control when the vertical scroll bar isn't visible. HELP!
|
|
|
|
|
Hi,
your story does not match my experience with RTB. Are you sure it does that ?
BTW There is a Clear() method that removes all text.
|
|
|
|
|
Weird eh?
Same issue for Clear() method.
again, weird eh?
|
|
|
|
|
P.S. This is how I populate the rich text field... the length of dataHexDump could be 256 or 512 bytes length. 512 bytes length does show vertical scroll bar automatically.
<code snippet>
for (int line = 0; line < (memSize / 16); line++)
{
for (int col = 0; col < 16; col++)
rtfDumpResult.Text += dataHexDump[line * 16 + col].ToString("X2") + " ";
rtfDumpResult.Text += "\r\n";
}
-- modified at 9:24 Monday 2nd July, 2007
|
|
|
|
|
So my best guess is you dont (always) execute the line rtfDispData.text = "";
you could put it right in front of your nested for loops...
I also noticed your RTB changed names ?
|
|
|
|
|
The code snippet that I showed is the actual rtb name... The thing is that I want to clear the screen so I can see that the software is processing obtaining and encoding bytes into hex equivalent string and display.
|
|
|
|
|
Just a guess:
maybe you are doing the rtb.Text="" in some other thread (which is illegal!)
and sometimes it works, sometimes it fails (it should always throw an Exception since
.NET 2.0 unless you set CheckForIllegalCrossThreadCalls=false, which one should never do !!).
If so, read up on Control.InvokeRequired and Invoke.
If not, give it a try with Application.DoEvents() following rtb.Text=""; if that helps,
consider it a hack, and try to move the code following it into asynchronous execution
(a separate thread, or something based on timer ticks).
|
|
|
|
|
THAAAAAARRRRR SHE BLOOOOOWWSSSS!
Thanks for the help! its the Application.DoEvents() DOES help! I've used that before and must've forgotten that! Thanks a heap!
|
|
|
|
|
umm one more thing...
What do u mean "consider it a hack" in the following quote:
"If not, give it a try with Application.DoEvents() following rtb.Text=""; if that helps,
consider it a hack, and try to move the code following it into asynchronous execution
(a separate thread, or something based on timer ticks)."
Can u clarify that? Thanks! I'm not sure of the meaning of it.
|
|
|
|
|
GUI design rules include the requirement to be responsive at all times, resulting in a
maximum time any action on the GUI thread is allowed to take (some 10 to 30 msec).
If so, there is no need for DoEvents().
Longer operations should be executed in the background, on a separate thread (or
be chopped into smaller pieces and sequenced somehow, e.g. using timer ticks).
There is a pseudo-solution consisiting of calling DoEvents() once or several times
while inside some long method running on the GUI thread; this allows the GUI to update
itself to some degree, but does not offer full responsiveness, hence it is a hack.
There are other requirements, such as:
lengthy operations should indicate they are running (the bare minimum is a WaitCursor);
lengthy operations should show a decent progress indication (Windows often fails to do
that itself);
lengthy operations should be cancellable.
Of course it is up to the designer how far to carry this; it does influence user's
experience tho.
|
|
|
|
|
Hmm thanks for the informative response. I've learned something new.
|
|
|
|
|
Hi,
I have populated a hashtable called CacheHashTableForwards.
This is how the hashtable gets populated:
CacheHashTablesForwards.Add(IndexName, code)
...
Now I would like to sort this data which is inside the Hashtable.
Not sure if this is a good approach but I use an ArrayList to do this as follows:
CacheHashTablesForwardsArraySorted = new ArrayList(CacheHashTablesForwards.Keys)
As you can see, The sorted array does not contains the other column, i.e. code
How can I properly sort using the arraylist.
Thanks
|
|
|
|
|
Hi,
your ArrayList CacheHashTablesForwardsArraySorted is NOT sorted:
1) the Keys property of a hashtable returns an ICollection containing all the keys, but
MSDN clearly states "The order of the keys in the ICollection is unspecified"
2) giving it a name ending on "Sorted" doesnt do it either.
So you must explicitly sort your ArrayList.
Afterwards, you can enumerate the sorted list, and use the hashtable to look up the
corresponding values.
The alternative is to use a SortedList instead of a HashTable; that one does it all.
|
|
|
|
|
Hello again,
I am now fully using sortedList()
This seems to be what I was looking for.
What is the difference between hashtable and sortedlist apart from the sort please?
|
|
|
|
|
Well, the MSDN documentation is rather abundant on these. Havent studied it in detail.
Seems like SortedList uses just two arrays (and hence needs frequently copying stuff
to insert/remove items), think of it as a normal List that makes sure it remains sorted
at all times, whatever the cost.
HashTable does not care about sorting, it applies a bag of tricks for maximum
performance: it uses a hashing scheme, and linked lists
so it offers best performance especially for large collections or frequent inserts/removals.
|
|
|
|