|
I am a VB programmer new to C# and I can't seem to find a simple way of raising an event. What I am trying to do is raise an event from one class that will update a progress bar on the main form.cs. In VB this was rather simple, declare the event and then raise it. So far, all of the examples I have seen in C# seem to be pretty involved or don't fully explain what is being done. Is there anyone here that can give me a brief sample with an explanation of what is going on?
|
|
|
|
|
|
I followed the example provided above and I think I understand it a little better. However, I am still not sure how you raise an event in one cs file, for example, process.cs to update something on the form in the form.cs file. The above, and all other, examples I have seen all show the event method overides in one cs file, the listener code and actual code that triggers the event in the main or form.cs file.
|
|
|
|
|
Jk published in his weblog(JKOntheRun) an article about the problem that maybe the new Windows Media Player 10 and the new "playsforsure" Features will never be available for actual Windows Mobile 2003 Pocket-PCs... thats a thing I am also worried about these days - because why the hell did I spent more than €600 for a device, with more than adequate memory capacity for all types of media, when it does not integrate in the existing "Media-World" that is drawn by available and upcoming Microsoft Products. Well have a look at the portable MediaCenter Devices... neat and really cool gadgets - a must have - you can sync them with your home pc´s - you can have the movies from your home´s MediaCenter on your portable MediaCenter, you can buy content from Microsofts Content-providing Partners... okay thats cool isn´t it. - But infact - I got that nifty "all-in-one device suitable for every purpose" called Pocket PC.... - Iam watching high-quality-mpeg4 movies on my PocketPCs for months... I listen to my mp3´s, ogg´s, aac´s and whatsoever... but those cool integration-feeling doesn´t come up with my PocketPC... and the Windows Media Player 10 for Windows Mobile would help that a bit - but what would sort things out: to have the same integration and Features that are available for other, compared to the Pocket PC dumb, devices....
And that´s why I started the "MTP-over-IP" Project. Because MTP is the Protocol all this cool devices use to communicate with the Applications... (there are some more like auto-discovery and so on...but first things first)... a working Implementation of MTP would make it possible that the Windows Media Player 10 on the PC could recognize the Pocket PC as a Media Device, as a Smart Device that it is...
So. Due to quite heavy workload I have the moment I cannot do such a project alone - so I would like to ask everyone that is interested and capable of helping me with this project in doing so.
At the moment the first lines of code are already written - I started the MTP Library in C# based on the .NET Framework at the Moment - the goal is to get the MTP Protocol working, on the .NET Framework and on the .NET Compact Framework...
I published the first lines of code some days ago... you can grab it here (sorry that the blog-article is mainly in German...)
Some links to the source: http://maniac.rz.tu-ilmenau.de/schrankmonster/PermaLink,guid,bc4f4294-54bc-4675-87c3-a8c892ab4b3d.aspx[^]
|
|
|
|
|
Any ideas to the question above? i can make the form appear but there are a few problems to note.
1. The mouse does not draw on the form that appears on top of the app.
2. you cannot move the form around or else the backround will 'brake up'
The app is full screen (non-exclusive although i would like it to work with exclusive). How do i have to setup my direct draw drawing methods to work when this form i being draw? the code im using to make the form is just a test code basicly this: Form f = new Form(); f.ShowDialog();
Thanks alot for your time.
|
|
|
|
|
I don't know exactly what controls there are included but if you get the new SDK (December 2004 update) there are form type controls included with directX. I know there are text boxes, buttons, labels etc but i've notlooked into it in any great detail yet but you may be able to find what your looking for there.
Kev
|
|
|
|
|
i currently have that version installed on my comp..i noticed that it seems to be d3d controls? im using direct draw and i think the best way to just show buttons and options is to pop open a standard windows form and work from that. in any case i looked through the directx documents and they seems to be lack luster to say the least.
Jesse
The Code Project Is Your Friend...
|
|
|
|
|
Maybe just include a reference to D3D and have a go? Although i must admit the documentation all seems very poor for managed DirectX. I'm working on some DDraw stuff myself so if you figure it out then let me know, it would be nice to have some sort of options form or something like that in some of my future projects.
I can't even point you in the direction of any good source material for managed directX, the best book i have found is Managed DirectX Kick Start by Tom Miller but the main focus of that is on D3D and it doesn't cover working with forms. As for websites i haven't been able to find any that specifically cover Managed DX, the best i have found is sites like this one that cover programming in general. A friend and I are working on a website at the minute but we have just started it and are going to focus on games programming so i don't see us worrying to much about getting forms displayed at the minute. If you fancy taking a look at the site go to www.monkeycmonkeydo.co.uk
Kev
|
|
|
|
|
Hi everybody,
I want to return a result from a client form or dialog (no standard results like dialogresult.OK or somthink like that) but my own resultcodes.
In which memberfunc. do I have to place the (return)code so that the calling parent can get the returnresult.
Is it only possible with dialogs or in forms too.
Thank you for helping.
fracalifa
|
|
|
|
|
If you call a dialog or form from the parent, that dialog or form won't be destroyed until the calling function ends, or you explicitly call the destructor. This means that any variables, or functions, will still be accessible. Just call a public function to get return values, or make the variables public.
- D
|
|
|
|
|
Hi I have a question about how constructors are used when it comes to inheritance in C#. I have come across this problem:
<br />
Class A<br />
{<br />
public A(int x)<br />
{<br />
}<br />
}<br />
<br />
Class B : A<br />
{<br />
public B()<br />
{<br />
}<br />
}<br />
The compiler gives me this error:
No overload for method 'A' takes '0' arguments
When I put in an empty constructor in A it works. Whatever I do to the constructor in B do not matter; the same error is generated by the compiler. The thing is I relay don’t want any constructor in B at all. I want to use the same one that is used in A. Is there any way I can do this with out working around it and make the constructor in A into a method?
|
|
|
|
|
Try:
<br />
Class B : A<br />
{<br />
public B(int x) : base(x) {}<br />
}<br />
You have to define the constructor in B because constructors are not inherited. But by using the base call you just call the constructor of the base class A and dont have to implement anything in B.
|
|
|
|
|
Ok so if I understod this right, the first thing that happens is that the constructor of A is called and then the constructor of B which in this case does nothing, but it can potentialy do something.Right tnx for your qick answer and sorry for my lazy reply.
|
|
|
|
|
Hi,
I am working on a Folder Browser for a program, my only guess of what to use is TreeView, but i have never used it before. I have searched on Codeproject for similar application that has a FolderBrowser, but they seems to advanced for me.
Can anyone tell/show me how to make such a program.
Though i do not have a clue on how to do, i started by doing this:
private System.Windows.Forms.TreeView _Directory = new System.Windows.Forms.TreeView();
private void AddTo_Directory()
{
DirectoryInfo all = new DirectoryInfo("c:\\");
foreach(DirectoryInfo x in all.GetDirectories())
{
this._Directory.Nodes.Add(x.ToString());
}
}
but that just give me the directories in "c:\\", I have no idea on how to get all the sub directories!
Thanks
QzRz
QzRz
|
|
|
|
|
You will have to make a recursive algorithm:
<br />
private void AddDirectory(DirectoryInfo dir, TreeNodeCollection col)<br />
{<br />
TreeNode node = col.Add(dir.Name);<br />
try <br />
{<br />
foreach(DirectoryInfo x in dir.GetDirectories())<br />
AddDirectory(x, node.Nodes);<br />
} <br />
catch {}<br />
}<br />
Now you could call AddDirectory(new DirectoryInfo("I:\\"), _tree.Nodes); to fill the tree with the complete hierarchie. The problem that arises is that this will load the entire folder structure of your hdd to the treeview at once. This would probably be frustrating to the user.
To avoid this you should always onle fill into the tree what you have to. So your first step isnt that wrong, because you are filling only the subfolders of the first hierarchie. To add needed subfolders when a node is expanded you will need to catch the AfterExpand event of the treeview and add the needed subfolders to the nodes in the expanded node. The following functions should work to do this:
<br />
private void AddParent(string dir) <br />
{<br />
DirectoryInfo dirInfo = new DirectoryInfo(dir);<br />
TreeNode node = _tree.Nodes.Add(dirInfo.Name);<br />
node.Tag = dirInfo;<br />
GetDirectories(dirInfo, node.Nodes);<br />
}<br />
<br />
private void GetDirectories(DirectoryInfo dir, TreeNodeCollection col) <br />
{<br />
try <br />
{<br />
foreach(DirectoryInfo x in dir.GetDirectories())<br />
{<br />
TreeNode node = col.Add(x.Name);<br />
node.Tag = x;<br />
}<br />
} <br />
catch {}<br />
}<br />
<br />
private void Tree_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e)<br />
{<br />
foreach (TreeNode node in e.Node.Nodes)<br />
GetDirectories((DirectoryInfo)node.Tag, node.Nodes);<br />
}<br />
Tree_AfterExpand must be set as the eventhandler of the corresponding event of your treeview. For each drive you want to add there must be one call to AddParent.
|
|
|
|
|
Robert,
Snap. Your way of dynamically creating the tree of course would be better ...
Allan
|
|
|
|
|
Thanks alot... it helped me alot
I only have one more question (I think)...
Do you know if the "Environment" is the best way to get all the logical drives?
Thanks
QzRz
QzRz
|
|
|
|
|
To determine if its the best way I would have to know ALL ways to get this information .
The only other way I know of (beside direct api calls) is System.IO.Directory.GetLogicalDrives , but I dont know if there is any difference between the two.
|
|
|
|
|
Looks like you need a bit of recursion:-
private void Form1_Load(object sender, System.EventArgs e)
{
AddDirectories(_Directory.Nodes, new DirectoryInfo("c:\\"), 1);
}
private void AddDirectories(TreeNodeCollection tn, DirectoryInfo dir, int level)
{
if (level <= 5)
{
try
{
DirectoryInfo[] dirs = dir.GetDirectories();
foreach(DirectoryInfo subDir in dirs)
{
TreeNode newNode = tn.Add(x.ToString());
newNode.Tag = subDir;
AddDirectories(newNode.Nodes, subDir, level + 1);
}
}
catch
{
}
}
}
The AddDirectories() method calls itself passing in DirectoryInfo and the new node for each new directory it finds and so on. The level variable in this example serves as a way to restrict how far into the directory tree the method should go. Also I usually store the DirectoryInfo into the tag of the newly created node so I can make use of it later when the node is selected by the user.
|
|
|
|
|
Hej!
We are working on a ASP site that is connected to a database(Access)(On the Same SERVER).
We are also developing a Server/Client program. This Server(C#) will have to be connected to the database one way or the other.
It have to react when a change is made to the database.
We have then thougt of the ASP to trigger the event at the Server(C#), is there any way to do this easy? The Server will be located at the same SERVER as the ASP site.
One other thougt is to let the Server program look in the database for changes, but only one can be connected to the database and by this the C# server will not be able to read it thou the ASP site is working against it.
Pleas help!
Best Regards
Jimmy
|
|
|
|
|
Do you mean ASP, or ASP.NET ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
I mean regular ASP, is it posible?
//SnowJim
|
|
|
|
|
That's a real shame ( on many levels, I feel sorry for you ).
I'd say your best bet is COM. From memory, the mechanism for a COM object to call it's own is called 'connection points' ( this is deep, dark memory banks we're accessing though ), I dunno if they work with C#/COM interop, but clearly COM is the thing that ASP and C# can both use to talk to each other, so I reckon that's where your answer lies, unless you want to do something really ugly like have the C# code poll a file or table to find out when changes occur ( I am not suggesting this is a good idea ).
Is the ASP site legacy code ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Yeah its a shame, but it would take to much time to tech us ASP.net right no.
COM sounds intressting, i will have to searth some sites for COM with ASP and C#.
I thougt of the ugly way you mention about the C# vode poll a file or table, but it dont simes right to use.
Is the ASP site legacy code ?
It is coded by hand and we are only using our own code, or what do you mean?
//SnowJim
|
|
|
|
|
Snowjim wrote:
It is coded by hand and we are only using our own code, or what do you mean?
I meant, are you starting a new ASP site ( if so, I can't imagine why ), or have you inherited one.
Snowjim wrote:
it would take to much time to tech us ASP.net right no.
You obviously know C#, I don't see where the problem lies. The worst you could do is write an ASP.NET site that could be improved upon later.
Snowjim wrote:
COM sounds intressting, i will have to searth some sites for COM with ASP and C#.
You don't spin up COM objects now in your ASP project ? How do you handle the middle tier development ?
Snowjim wrote:
but it dont simes right to use.
No, it would be plain terrible
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|