|
OK. What appears to be a probable problem here is that your site.Container.Add(this.label) gives one container the responsibility of painting your label. Then you are given this.control.Parent the responsibility of painting (and disposing) your label.
There's a struggle going on there that cannot be resolved, and your behavior is quite surely a result of it.
|
|
|
|
|
One other thing...
I just thought I'd mention this since your assumption reminds me of a very costly error I made recently. I was looking for documentation to resolve what I believe should have been a very simple matter -- something it should have taken only a few minutes to resolve.
Over the years, I've coached myself to do certain things whenever I encounter a difficulty. The thing I usually do here is first step back and abstract my problem to its most simple possible terms: I made an assumption. *IS* it right?
What happens when we *cannot* answer this question with *absolute* certainty is, we can pursue many trails... always having to return to this juncture unless *we just happen* to get it right. The problem *even* with "just happening to get it 'right'" is, we still don't know if we have "done it" *soundly* -- and so it is *still* necessary to return to the juncture and answer the first question *with absolute certainty*.
So, I slap myself good and hard... and bore into that first question to find the absolute answer.
I believe that will best get you wherever you are going.
On the humorous side of this... so what was my costly error recently of just this sort?
Actually, I posted a couple of questions here, and a few people tried to cite general documentation areas (which were further wild goose chases). I was a bit surprised that no one could answer my relatively basic question, but on careful analysis of product documentation I find instead that there is good reason for all of us to be as "inept" as I was to find the answer to this simple issue.
I needed to define a composite control property of a further custom class, and (of course) I wanted that class property to be displayed under a nested node in Property view.
OK. We can all say I must have been stupid, because we all know that you have to write a "TypeConverter" to do this, right?
If that were so, why was the closest thing to an answer an uncontested suggestion to write a ControlDesigner?
Here's the problem. I spent *days* carefully dissecting walkthroughs for the possible deviation I must have inadvertently committed, *even when the walkthroughs didn't even seem to be explicitly addressing my issue*.
(Well, that's "thorough," isn't it?)
Not exactly. Because I ignored my first question: Was my assumption *right*?
What was my assumption?
No search turned up nested node or pointed me to TypeConverter. I *DID* however see TypeConverter, and I did occassionally browse it a bit. But (due to the way it is written), I never saw it provided the behavior I wanted. Nor, in my wildest dreams, would I assume (particularly because no *conversion* of types should be involved whatsoever with what I wanted to do) that a "TypeConverter" would be the one vital instrument of achieving nested node behavior.
So I *assumed* TypeConverter was not a probable avenue.
Indeed, poor documentation and nomenclature both may be said to have led me astray. And too, there are too many such possible issues to explore so exhaustively (which is why documentation needs to be much better than it is), that we can and do regularly resolve so many issues as fast as we could resolve them if many details were better attended to, and if documentation systems were designed as well as they could be.
But still, my problem would have been solved much faster if I had resolved my assumption to definite terms.
|
|
|
|
|
Scott, if you take a look in the Windows Forms section, I answered this particular problem there. Basically, the problem that you are having is one to do with the sequence of events that happens when a form loads. The extender provider is associated with your component before your component is added into the controls collection, so you need to handle the ParentChanged event to capture the control being added in.
the last thing I want to see is some pasty-faced geek with skin so pale that it's almost translucent trying to bump parts with a partner - John Simmons / outlaw programmer
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Pete,
Your explanation here is much easier to understand than the one in the Windows Forms section. I know they both say the same thing, but this one makes it much clearer. Anyway, as I said in my reply to your other message, between your posts and Mike's I was able to get this working correctly. The finishing touches go on tomorrow.
Thanks,
Scott.
-----------------------------
In just two days, tomorrow will be yesterday.
|
|
|
|
|
Not a problem. I'm glad that I can be clear at least some of the time
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Now that I've declared victory on the extender component, I'm getting ready to tackle creating a custom layout engine. Do you have anything you can point me to as a good reference? This is in a similar state as IExtenderProvider, very powerful and not well documented at all.
-----------------------------
In just two days, tomorrow will be yesterday.
|
|
|
|
|
Hi all
I have Visual studio 2003 with just c# installed I have to read in a access database and show it using the smart device application. I sort of know how to do it on a normal app but as soon as i enter using System.Data.OleDb It cannot find on the smart device library. Is there way to read in a database and show it using a smart device app.
Can any one help
Thanks
James_Bond
|
|
|
|
|
|
Thanks
But you see this is using System.Data.OleDb; which is not in the smart device library so i need to use something else. if you know how to do it in smart device or someone else please help
Thanks in advance
James_bond
|
|
|
|
|
Abu Syed Khan wrote: The type or namespace name 'WebcamEventArgs' does not exit in the namespace 'WebCam_Capture' (are you missing an assembly reference?)
The compiler cannot find the WebcamEventArgs type. You have to either get hold of the source code of this class and include it in your project or get hold of the dll containing the class and reference this dll.
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
Why would somebody vote "1" for this answer?
Got my "5", to bring it back in shape!
All the best,
Martin
|
|
|
|
|
Maybe the person in question wanted to vote 5, but is not that good at aiming with the mouse
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook www.troschuetz.de
|
|
|
|
|
I have written a sort routine using IComparable<t>. It is pretty ugly. I looked on this site and others in order to write what I did. I had a tough time getting my head around both IComparable<t> and IComparer<t>. I was hoping someone would know a good website or book that deal with IComparable<t>/IComparer<t> for those who are learning. Thanks
|
|
|
|
|
Take a look at this blog post: http://vaultofthoughts.net/IComparableVsIComparer.aspx[^]
Essentially, IComparer allows you to customize the sort order of a collection by implementing a Compare method that allows you to compare any two arbitrary objects to determine if one is less than, equal to, or greater than the other.
IComparable is usually implemented by types whose values can be ordered (like string and int), but only allows you to compare the current instance with another object using the CompareTo method.
-----------------------------
In just two days, tomorrow will be yesterday.
|
|
|
|
|
Richter (CLR Via C#, Second Edition) has an interesting little chapter on p. 141.
Its title is, "Changing Fields in a Boxed Value Type by Using Interfaces (And Why You Shouldn't Do This)"
|
|
|
|
|
PS. You find that chapter by looking up IComparable in the index.
|
|
|
|
|
Hi,
Anybody can please help me out in getting the data from two different tables in two different databases.
Thanks in advance.
rr
|
|
|
|
|
AR Reddy wrote: Anybody can please help me out in getting the data from two different tables in two different databases.
If you can get data out of one table in one database then it doesn't take any lateral thinking to extend that two tables in different databases.
You open two connections, and execute two commands and you get two sets of results back.
|
|
|
|
|
Depending on your DBMS, you can just reference a different database. For SQL Server, you can do the following.
USE Database1 GO
SELECT *
FROM Table1
SELECT *
FROM Database2.dbo.Table2
You need to specify [Database].[owner].[Table/object]
Hogan
|
|
|
|
|
I have to get into a single database and dind to a dataset. How Can i do this?
rr
|
|
|
|
|
Please provide a bit more information. Name your databases and tables for the example you need.
database1.Table1
Database1.Table2
That sort of thing and then try to describe how you need to get the data out.
Hogan
|
|
|
|
|
DataBase1.Table1
DataBase2.Table2
I want to get the data from above two tables into a single dataset and bind to datagrid.
Thanks,
Reddy
rr
|
|
|
|
|
Reddy,
Start with the query for getting the data. I'll assume your SQL connection is to Database1
SELECT T1.*,
T2.*
FROM Table1 T1
INNER JOIN Database2.dbo.Table2 T2
ON (T1.ID = T2.ID)
With the query above, you can get any data out of the two tables in different databases.
Hogan
|
|
|
|
|
Hogan,
I got it. Thanks a lot.
Reddy.
rr
|
|
|
|
|
Hi i am trying to filter a datatable on a specific sessionID and if a colun is empty/null whatever but i cannot seem to fnid the correct syntax to check if my cell is empty alseo some of the different cols are nvarchar so if anyone knows how to go about doin this or is there a better way to do it any help is appreciated
string queryString = "SessionID = '" + iSessionID + "' And " + sColName + " != ' '";
if(iTable.Select(queryString).Length > 0)
return true;
else
return false;
Thanks
Tim
|
|
|
|