|
I have this GUI project written in C# that loads pictures and graphical analog gauges. Also, it has a skin from SkinCrafter. When this GUI app is launched and starts to paint on the screen, the painting is not smooth in a way that the pictures and graphics appears in all direction, meaning, for instance, not just from top going down its bottom, and this happens with delays. Do you have an idea how can I make this appear smoothly, or one direction only.
Thanks a lot in advance.
Lem
_
|
|
|
|
|
You can show splash screen while your main form is being initialized. When initialization ends, close the splash screen. There are several good articles here on codeproject about developing splash screens.
Giorgi Dalakishvili
#region signature
my articles
#endregion
|
|
|
|
|
SuspendLayout / ResumeLayout might also prove handy here depending on what you're looking for, can't quite envisage what's going on from your description.
He who makes a beast out of himself gets rid of the pain of being a man
|
|
|
|
|
The controls are going to be painted in the order that they are added to the Controls collection in the form. As has been suggested, you can use a splash screen or SuspendLayout/ResumeLayout.
|
|
|
|
|
|
Hi,
Kindly help me for that, I want to receive cursor position and pixel value/color when the cursor is moving on desktop or on other application.
Thank you
(Riaz)
|
|
|
|
|
You can get the cursor from Mouse.X and Mouse.Y, something like that. You'd need to grab a screenshot to get the color of a pixel off your mouse position.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
I don't know how to get the pixel value color... But...
You can get the position of the mouse using this code:
<br />
[DllImport("user32.dll")]<br />
static extern bool SetCursorPos(int X, int Y);<br />
<br />
[DllImport("user32.dll")]<br />
static extern int GetCursorPos(ref tPoint lpPoint);<br />
<br />
struct tPoint { public int X, Y; }<br />
<br />
public static Point GetCursorPoint()<br />
{<br />
tPoint point;<br />
point.X = 0; point.Y = 0;<br />
GetCursorPos(ref point);<br />
return new Point(point.X, point.Y);<br />
}<br />
Christian was right to say that you can get it using Mouse.GetState() alot easier though.
Mark.
|
|
|
|
|
it is very good method to learn that, where is mouse cursor moving.
Thank you
|
|
|
|
|
i am having single table with col'n serviceID, name , ParenID.
eg,
ServiceID Name ParentID
1 aaaa 0
2 bbbb 1
3 cccc 1
4 dddd 2
etc.
In hierarchical grid when i click on aaa it will display a child grid
with a data bbb,ccc .When I click on bbb it will display data (dddd)
in a another sub child grid. So as data in table increases the child
grid will increase.
So can anybody mail me a code for developing a infinite level
hierarchical data grid with edit update option
|
|
|
|
|
There are several solutions to solve this problem...
You can load the table at once and populate your interface manually in code
<br />
function Populate()<br />
{<br />
PopulateChildren(Table, ID)<br />
}<br />
<br />
function PopulateChildren(Table, ParentID)<br />
{<br />
PopulateChildren(Table, ID)<br />
}<br />
However, the solution of which I think is neater, is create a dataset what several tables and create DataRelations between them to create the parent-child hierarchie. This way you can fetch child and parent rows by using a certain datarow's GetChildRows() and GetParentRow() method... However, since the hierarchie is infinite, you may have difficulties creating that dataset... When creating a dataset I always user constants to store the name of DataRelations etc in, having such a dynamic dataset makes that impossible... Think wise
|
|
|
|
|
ya i collect data in parent child relation but my disply is not look good
so i need a code how give correct disply 2 the datagrid like tree view
|
|
|
|
|
I am doing a multi threaded application. In this application, configurations are kept in an XML file and loaded as a singleton instance. I have a class to manage this XML file say Configuration . This Configuration class has a Current property which is a singleton instance.
private static object locker = new object();
private static Configuration _configuration;
public static Configuration Current
{
get
{
if(_configuration == null)
{
lock(locker){
_configuration = LoadConfiguration();
}
}
return _configuration;
}
} Is this code thread safe ? Assume first thread has locked and started to fill the _configuration instance. But before it completes, another thread requests the Current property and comes inside the if block. It will be queued until the lock gets released. But after the lock gets released, will that thread creates the instance again ? I am kinda confused at this point. Any help ?
|
|
|
|
|
Hi Navaneeth,
no it is not OK. You need to test for null after you got the lock.
you MAY test before TOO, to improve performance (i.e. avoid acaquiring the lock
on all visits but the first).
So typical code sequence is: test, lock, test again, do, unlock
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Luc Pattyn wrote: So typical code sequence is: test, lock, test again, do, unlock
Thanks. So will it be like this ?
private static object locker = new object();
private static Configuration _configuration;
public static Configuration Current
{
get
{
if(_configuration == null)
{
lock(locker){
if(_configuration == null){
_configuration = LoadConfiguration();
}
}
}
return _configuration;
}
} Also I heard that the double checking has some performance problems and it's not a recommended practice. Is that correct ? Also I am thinking about an alternative approach like this,
private static readonly Configuration _configuration = LoadConfiguration();
public static Configuration Current
{
get
{
return _configuration;
}
} How about this ? Will readonly approach makes any problems in multi threaded environment ?
|
|
|
|
|
Hi,
your first snippet is OK.
double test is very cheap, and much cheaper than always locking, hence no
performance issues at all.
Your eager execution (second snippet) has one advantage:
it is simpler, less code.
and two disadvantages:
1. it always does the load; that's OK if you always need it, which may or may
not be true;
2. it may execute sooner than required (e.g. by accessing something else in the
same class, hence class load and execution of static code), hence delaying an operation
the user might be waiting for.
It depends entirely on the app itself whether the eager code is fine or not.
I tend not to do eager stuff in the main thread, so overall my preference is
doing this kind of initialization in a background thread, unless it is really needed
early on in the app.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Luc Pattyn wrote: it always does the load
Means it calls the LoadConfiguration method each time when I access the Current property ?
Luc Pattyn wrote: it may execute sooner than required (e.g. by accessing something else in the
same class, hence class load and execution of static code)
Ya, this is correct. But this class contains only this property.
Luc Pattyn wrote: so overall my preference is
doing this kind of initialization in a background thread,
Do you mean the readonly kind or the first one ?
Thanks for your help.
|
|
|
|
|
N a v a n e e t h wrote: Means it calls the LoadConfiguration method each time when I access the Current property ?
No, obviously not. The getter only returns the member's value, no more, no less.
But the first time you do anything with the class the static code gets executed,
so you perform LoadConfig even if you never get Current at all. That may or may not be
acceptable, up to you.
N a v a n e e t h wrote: Do you mean the readonly kind or the first one ?
The eager one, i.e. have a background thread do it at its own pace, without blocking
the main thread, but before it is really necessary.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
|
Hello,
I am creating a mobile 5 application using CF 3.5.
I have a combo box that keeps on firing on the selectionIndexChanged event. I need this event to get an item from the combo box. However, when the combo datasource is set it will fire this. I have resolved this issue with a simple bool test. See code below. However, I have noticed that the event often fires. Its hard to track down what is causing this to fire.
<br />
this.cboDataSourceSet = false;<br />
this.cboRecentNumbers.DataSource = this.bsRedialedNumbers;<br />
this.cboRecentNumbers.DisplayMember = "Name";<br />
this.cboRecentNumbers.ValueMember = "ID";<br />
this.cboDataSourceSet = true;<br />
<br />
private void cboRecentNumbers_SelectedIndexChanged(object sender, EventArgs e)<br />
{<br />
<br />
if (this.cboDataSourceSet)<br />
{<br />
}<br />
}<br />
I am thinking of 2 methods to solve this issue:
1) Is there a way to stop the event being fired or a way to track down the event to find what other conditions are causing it to fire?
2) Inherit from the combo box class and add your own SelectionChanged Event. (Can anyone point me in the right direction for doing something like this?).
I would perfer method 2 as I have never done anything like that before. So good for learning something new.
Many thanks for any suggestion and help with this,
Steve
|
|
|
|
|
I have come across something similar (or maybe even the same), IMO, your simple solution is adequate
If you want to inherit, you can try override OnSelectedIndexChanged. Calling the base implementation should fire the event.
|
|
|
|
|
Hi guys,
I have a scenirio where by i need create some circles with varying distance in the sides of a triangle on a Web Page where all the sides are equal.
I have the points for all the three vertex.
I know just because i am using C# for that this question does't belong here.
But please let me know if you have any idea on this..
Thank you
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
You work out the ratio of width to height and use that to calculate the x for a given y, or vice versa.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Hi Christian,
Thank you for the reply. But it will work only if the line is straight.
You mean to say new x = (Width - n) Right..
But here it is a slanting line. Like the sides of a triangle.
Or may be i got you wrong ?
Thank you
Laddiw
Thanks
Laddie
Kindly rate if the answer was helpful
|
|
|
|
|
You got me wrong.
If x1=5, y1 = 10, x2 = 25, y2 = 50
then the ration is (25-5)/(50-10), or 20/40 or 1/2.
So, if you want to know the y position when x is 10, you subtract 5, to get to your base line. Then you multiply 5 by 2. Then you add 10 ( your starting y ). So, 10,20 is a point on the line.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|