|
Hi
I have a problem, in my application I have a window with a lot of labels(50-100) in it. So far so good but the performance is horrible when the labels has to redraw. What do I need to do? Suppress the redraw some how, bypass the normal OnPaint or what? Also I would like to know why this happens, is this a common problems with labels or is there something I might have done wrong in the data binding maybe?
/Regards Johan Hertz
|
|
|
|
|
It depends on what you are trying to achieve with your app.
If its a representation of a plant or installation, you will have to update only the labels which have changed (by comparison).
If you are resizing your form often, you should only draw the labels when the resizing is done (on completion).
If you just want to change labels time-dependant, you should use a timer which ticks every so often and updates one set of labels. (by timer)
If you have other windows which are drawn on top of your app, you should only redraw the changed region (by screen-region)
The problem is, that Windows is responsible for telling applications to redraw. Windows passes along some information, including the exact screen area which needs to be redrawn. If you dont take this into consideration, you will end up redrawing the whole windows every time a message-box pops up.
Updating controls has a HUGE overhead associated with it. You should try to update the labels rarely. Say, you are doing some computations and are updating the label continously. Bad idea. Instead, you should use a seperate thread to compute the results and update the label afterwards. That way, your form will still respond to size- and position-changes - and, since the labels have not been updated, Windows can simply move the graphic representation of your window without having to redraw every time.
Cheers
Sid
|
|
|
|
|
Ok
Thanks for the reply, I don't need to update my labels often at all, what I would like to do is to redraw them when the resizing is done, what I have done so far is to completely remove all labels while resizing and then draw them back on onces the redraw have finished. This is poor for feed back but works. Is there a way in which I can keep the labels on the form but not update them? Any way thanks for the help so far.
/Regards Johan
|
|
|
|
|
Hello, can anybody help me?
I've got this strange problem. In my desktop application, I have a picturebox. Normally this picturebox has the border set to 'none'. When the user comes close to a border (marging 2 px), I change the cursor to any of the resize options available. No problem so far, but... I want to resize the picture box when the mouse is moved. Again, not really a problem except for the following... When the user clicks the box (while the cursor is in a resize mode), I set the border.FixedSingle... The resizing is not the issue, but somehow when the mouse pointer is exactly over the border (that one little pixel), the cursor changes to 'default'. I'm not doing it with coding... As soon as the user moves of the border, the cursor is correct again.
Although this is purely a 'visible' problem, and it terribly ugly... The real problem is deeper. When the cursor is any of the resize cursors, my programming works fine. When the mouse button is released, the picturebox is resized and everything is okay, but... During that one moment when the cursor is set to default (aka, when the mouse is precisely on the border), the mouse up function I've created isn't fired.
I really have no clue what's going on... Can't seem to detect the 'sender' either...
Anybody? Were can I look??
Thanks in advance.
Masaia
|
|
|
|
|
Maybe u can set the cursor of the closer 2 pixs of the image to the resize cursor?
|
|
|
|
|
i think that when you hover over the border the cursor changes because thats a so-called non-client area, which means its painted by the operating system
so you cant paint there, and there are also no mouse events fired
this sucks big time, believe me!
|
|
|
|
|
BinaryWriter/Reader documentation indicates it
"writes in little-endian".
My question: Is the documentation correct? Did it mean to say
"BinaryWriter/Reader is (guaranteed for all time) to write/read in little-endian".
OR
"If System.BitConverter.IsLittleEndian is TRUE,
THEN BinaryWriter/Reader will write/read in little-endian".
ELSE BinaryWriter/Reader will write/read in big-endian
|
|
|
|
|
"BinaryWriter/Reader is (At this time) to write/read in little-endian".
|
|
|
|
|
I have two separate Forms executables that interact and behave visually to the user as one application. When my second app starts I set it's form to TopMost to ensure the user can see it above the first app so it appears like a child of the first. Of course this is not really what I want because now it is above all windows.
Is there a way to establish a parent-child Form relationship between Forms in separate applications?
Thanks.
|
|
|
|
|
bherman69 wrote:
Is there a way to establish a parent-child Form relationship between Forms in separate applications?
No, there isn't.
Why are they seperate app's? If they are so interrelated, why not combine them into one application? If they were in the same application, then you could use ShowDialog to show the second form as an Application Modal Dialog, instead of the mess you created.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Believe me, I wish they could be in the same application. But they can't so I am left with trying to solve the issue of Form relationships between applications.
Thanks.
|
|
|
|
|
is there is bulid in support in windowsXP for the .netframework.
ddd
|
|
|
|
|
No, you have to install it. I think Windows Server 2003 may have .NET pre-installed though.
Kevin
|
|
|
|
|
Hello,
It would be so great if somebody can tell me how to test if a port on my PC is free or not.
My client PC, that I am building, has to inform the server on which port this last can send a RTP video streaming through a udp connexion. And so, I want that my client PC find an unused port, to be sure that the transmission will succeed every time.
Many thanks for all kind of help and have a nice day,
alain
There is no way to happiness, happiness is the way !
There is no way to happiness, happiness is the way !
|
|
|
|
|
The simplest way is to simply try and bind to the specific port, if the bind succeeds, the port is free, otherwise it is not. For example,
TcpListener listener = new TcpListener(1234);
listener.Start();
If you don't want to check manually, you can pass 0 to TcpListener's constructor, it will automatically find a free port to bind to. You can then get that using the LocalEndPoint property.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Hei, thank you for your answer. I have finally coded like following (with MFC) :
// Adresse ip local du pc
CString CSipAddLocal = CTool::GetLocalIP();
CAsyncSocket *ClassMySocket = new CAsyncSocket;
//ClassMySocket->Create(atof(portUnicast));
ClassMySocket->Socket();
int i = 0;
while (ClassMySocket->Bind(atof(portUnicast),CSipAddLocal)==0)
{...try another port...}
..................................................................
I think this method is working well !
I wish you a nice week-end, bye !
alain costanza
There is no way to happiness, happiness is the way !
|
|
|
|
|
My datagrid has a big problem, it happens only in columns that are read only.
Please see the datagrid image.
The gost that I show it’s like a new readonly textbox.
If the selected cell it’s not readonly there’s no problem.
I think that the problem it’s ralated with lose of focus of the datagrid.
After pressing a button, I fill again the datagrid with new datasource but this thing remains, hiding the new value!
Only with scrool I can see that the new value it’s really there but the old is hiding it.
I tried datagrid Refresh() and so many things but nothing works.
Need help please.
Paulo Gonçalves
pfrg@mega.ist.utl.pt
|
|
|
|
|
Hi
I'm doing a bit of research with .NET's TCP IP classes - downloaded some samples from MSDN and off here.
However, whenever I run a client program that creates a TcpClient, I get the following popup message.
An unhandled exception of type 'System.Net.Sockets.SocketException' occurred in system.dll
Additional information: No connection could be made because the target machine actively refused it
A bit frustrating as that stops everything from running.
I'm on XP and running service pack 2
Is there any way around this?
Cheers
|
|
|
|
|
That error message means that you were trying to connect to a server and the server didn't exists. You must first run the server (code that creates TcpListener and calls appropriate methods to accept TcpClients) before running the client.
In case you've already started the server and you're still getting the error, it might be because of SP2 Firewall settings..
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Seems to have done the trick
completely new to .NET so struggling along! Cheers for the help
|
|
|
|
|
plz help me if any body have solution of this problem .
I have a big problem with .NET.
Short Description:
As long as I have an empty From in my Windows Application everything
works fine, but as soon as I add any kind of Control (e.g. a Button) to
the Form I get the following Exception in the InitializeComponents
method
*
An unhandled exception of type 'System.ArithmeticException' occurred in
system.drawing.dll
Additional information: Overflow or underflow in the arithmetic
operation.*
I read on a discussion board that this is caused by something called FPU
Exceptions which could be enabled by a hardware part of my machine.
Is there a Way to find out which part? Or is there a Way to turn them
off except the one on the MS Site?
Please help me if any body have solution of this problem
|
|
|
|
|
hi,
I wanted to learn about the Biztalk serverl.Can any one help me in this issue.
1) Can anyone help me where I can download BizTalk Server2002
2) Where I can find the documentation that helps me to learn about it.
Thanking you in advance
Satish
|
|
|
|
|
satishrg wrote:
1) Can anyone help me where I can download BizTalk Server2002
You can get the Trial version of 2004 here[^]. The 2002 Trial is no longer available.
satishrg wrote:
2) Where I can find the documentation that helps me to learn about it.
Try the BizTalk Server Developer Center, here[^] on MSDN. There's tons of information.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi there people,
I was wondering what strategies you would use to create an evaluation version of your software. I've been asked to do this for a company I do sub-contracting work for. Currently I'm just writing a long (DateTime.Now().Ticks ) to an open part of the registry at installation time, and comparing to that at run time. But there's got to be a better way!
TIA, pk
|
|
|
|
|
I think that is pretty typical, unless your software also connects to a web service for some reason, in which case you would get the date from the web server. You can also add code that saves the current date each time the software is run, and if the current date is less than the last date checked, you don't allow the software to run because it means the person "rolled back the clock" to extend the eval period.
The other thing that is frequently done is to write a bogus entry to the registry - usually a GUID in some area like the CLSID node with no defualt value that identifies your software. This GUID is not uninstalled, so when the eval is uninstalled, then reinstalled after the eval period it checks for the GUID. If the GUID is already there, it displays a message that the trial period is over.
Although leaving spurious entries in the registry after software is uninstalled is considered poor form, that is still how a lot of trial versions work. And besides, a lot of uninstalls of legitimate software are far less than perfect and leave garbage in the registry because they did not uninstall cleanly anyway.
Robert
|
|
|
|