|
how to access web service with SSL from windows application (C#)?
How to use the certificate in the client windows application/
Is there any sample available?
Thanks a lot.
|
|
|
|
|
You don't need to do anything - just use a URL with the HTTPS scheme when creating the web service proxy. If you want to pass a client certificate, you can add it to the ClientCertificates property that all web services proxies inherit from their base class, HttpWebClientProtocol . For more information and an example, see the ClientCertificates[^] property documentation in the .NET Framework SDK.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I am sorry if this question has aleady been asked.
I need a recursive fucntion for populating a multi-level (3-4 level) treeview. Also comment on the DataSet layout to be passed to this fucntion.
Thanks,
Ruchi
|
|
|
|
|
You need to make sure that a parent/child relationship exists in the DataSet , like:
ID ParentID Text
--- --------- -----
0 (null) Node1
1 0 Node1_1
2 0 Node1_2
3 2 Node1_2_1
4 3 Node1_2_1_1 The first method of your function must get the root nodes by getting those with a ParentID that's null (DBNull ):
public void BuildTree()
{
DataSet ds = GetDataSet();
DataRow[] rows = ds.Tables[0].Select("ParentID = NULL");
treeView1.BeginUpdate();
for (int i=0; i<rows.Length; i++)
{
TreeNode node = new TreeNode();
node.Text = (string)rows[i]["Text"];
node.Tag = rows[i]["ID"];
this.treeView1.Nodes.Add(node);
BuildSubTree(node, ds);
}
treeView1.EndUpdate();
} In your actual recursive function, you could do something like this:
private void BuildSubTree(TreeNode parent, DataSet ds)
{
int id = (int)parent.Tag;
DataRow[] rows = ds.Tables[0].Select(string.Concat("ParentID = ", id.ToString()));
for (int i=0; i<rows.Length; i++)
{
TreeNode node = new TreeNode();
node.Text = (string)rows[i]["Text"];
node.Tag = rows[i]["ID"];
parent.Nodes.Add(node);
BuildSubTree(node, ds);
}
} This is just a simpe example and can be greatly improved through the use of typed DataSet classes with defined DataRelation s, which provide a faster way to get children using DataRow.GetChildRows . This should be enough to get you started.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hey
Is there any simple way to force the vertical scroll to display always na not onlye when there is to much items??
The ListBox have somthing like force vertical scroll.
//Jimmy
|
|
|
|
|
This was just asked earlier today, and the answer was to search the C# forum (click "Search comments" above). This has been answered many times. You must P/Invoke the SendMessage native function and pass the WM_VSCROLL message with the correct parameters. Documentation for this function and message can be found in the Platform SDK.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi guys,
Anyone have an idea on how to use multiple backbuffers with DirectDraw 9.0 using the Managed version with C# ?? On the SurfaceDescription class, there is a member named: BackBufferCount. So it must be possible to do that! Unfortunately, the only sample I can found on the internet is using only 1 back buffer!
Thanks again!
Jean Bédard
|
|
|
|
|
It is possible, yes. I've been reading a book that someone sent me that covered this in the first or second chapter briefly (and will discuss it more later, when I get time to finish it). It's written by one of the program leads (can't remember exact title) of DirectX and is a very good book (one of the best I've read, though I read very few - I'm an SDK kind of guy, but the Managed DirectX docs stink). It's Managed DirectX 9 Kick Start: Graphics and Game Programming[^] and is available at many merchants' sites, including Amazon (the link).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks, I've just ordered the book on Amazon. Pretty cheap also!!
Jean Bédard
|
|
|
|
|
You set the BackBufferCount equal to the number of backbuffers you want e.g. 2 if you want 2 backbuffers.
I have some questions of my own: How do you find out the maximum number of backbuffers possible (that should be dictated by your graphics card memory + RAM)? How do you find out how much memory the graphics card has and how much RAM you have? If you figure out the answers pl. email me at fd97207@yahoo.com
BTW the DX kick start book just has one chapter on ddraw so not very useful as far as ddraw is concerned. See
http://www.cse.unsw.edu.au/~atan164/ddraw_print.html for a good tutorial .... in VB
|
|
|
|
|
Is CObArray and CObList the equivalent of a collection under .NET? I want pass data from one form to the other and then into a control. Can I create a class, add them to the collection, pass it and then fill the control? This in in ASP.NET btw...
Thanks
Ralph
|
|
|
|
|
ASP.NET is really no different from CGI in the world of HTTP. You can't really send a collection from form to form - you need to use POST data just like form elements in a page. You could store the collection in a session variable, but you'll take big performance hits if you don't clean it up correctly.
I'm not really sure what those objects are, but they appear to be an array and a list. Lists are those classes that implement IList (and inherit ICollection and IEnumerable ). Arrays implicitly derive from System.Array , which implements IList . So, they're both lists (but you can't use some methods from the aforementioned interfaces with an array - it's still a fixed number of elements).
You could serialize this collection and base64-encode it, then make sure it gets sent with your form data to the next page, deserializing it. If you're remaining on the same page (i.e., using post-back), you could also extend the Page class (your .aspx and code-behind files do this already) and override SaveViewState and LoadViewState to save this serialized collection, but this only works if using post-back with the same page. You should definitely read the documentation on those two methods - implementing them can be tricky, especially if you don't know what you're doing.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
The only way to pass data between forms is using Session, isn't it ?
Free your mind...
|
|
|
|
|
No, it's not the only way. Any data defined as an input for the page form can be sent to another page, which can retrieve it using Request.Forms (POST), Request.QueryString (GET), or Request.Params (both). How do you think CGI has worked since it was proposed? This data doesn't have to be input by the user - it can simply be in a hidden input field. The developer just has to make sure it gets in there before the GET or POST request is sent to another page (since that data is sent from the client to the new page).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I know that this is not the only way to share info between forms. I've done some ASP and CGI.
I didn't explain myself with the question...
I meant, is that the only way to do it using ASP.NET ?
Free your mind...
|
|
|
|
|
Well, besides sessions and and form data (thus meaning that sessions still aren't the only way in ASP.NET), you could always store it in a repository of sorts, like a database, file (bad!), cookie, etc. The nice thing about using a session is that the original poster wouldn't have to serialize the collection and could just store it in the session as-is. Sessions can be very nice, but they are often over-used (especially when large amounts of data are stored in them).
As I mentioned before, too, if you use post-back and stay on the same page (seems to be most common with ASP.NET), you can use the ViewState but the page implementation is responsible for saving and loading that ViewState (and one must be careful when doing so).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hii
I want to make a text box which only accepts numbers. If any other key is pressed then it is discarded.
In VB6 it's done in somewhat like this .. on the KeyPress event we check if KeyAscii < '0' or KeyAscii >'9' then KeyAscii = 0
How can we implement this thing in C#
|
|
|
|
|
You can use KeyPressed event handler:
<br />
void textbox_KeyPressed(Object o, KeyPressEventArgs e)<br />
{<br />
if(e.KeyChar < '0' || e.KeyChar > '9')<br />
e.Handled=true;<br />
}<br />
<br />
|
|
|
|
|
There are several ways to do this. One way is to do an override of the Form's ProcessDialogKey method:
protected override bool ProcessDialogKey(Keys keyData)
{
if(this.textBox1.Focused)
{
char c = (char)keyData;
if(!char.IsNumber(c))
return true;
}
return base.ProcessDialogKey (keyData);
}
The graveyards are filled with indispensible men.
|
|
|
|
|
I am interested in creating parsers, but I cannot find anywhere a decent site or book that explains this. I have found some info about top-down and bottom-up parsers, but I would like more details, differences and a good tutorial. Any help would be highly appreciated. Thanks a lot.
|
|
|
|
|
You can find some info on antlr page which is a really good parser generator tool for C#:
http://www.antlr.org
I have few examples on my web page on using antrl: http://www.adersoftware.com/?page=compilers
I have also an example there that doesn't use parser generator, but uses hand coded top-down recursive descent parser.
|
|
|
|
|
I have an ActiveX whiich I don't know it is written with wich language(I guess VB6). I also have .exp and .lib file for it. I want to use it in my .net application, when I add reference from COM tab, it say it can nor create wrapper class, maybe you have to register it. When I want to register it with regsvr32 I get this error:
D:\Documents and Settings\mazi\Desktop\Encrypt OCX\Project1.ocx was loaded, but the DllInstall entry point was not found.
This file can not be registered.
This means I can't import and use this file in .net? Any idea?
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
It doesn't matter in which language a COM component was written, just like it doesn't matter in which language a .NET assembly was written (for different reasons, but similar in concept).
If you're adding an ActiveX control the correct way is through the toolbox. Customize your toolbox (for example, the Windows Forms or Components tab when a dialog or control is open in the designer) and find it in there. If it's not in there, then it does have to be registered. Adding a reference to your project is more for typelibs (similar to tlbimp.exe), where customizing your toolbox and dragging it on a design surface in your managed project will create an actual control wrapper (simimlar to aximp.exe), derived from AxHost . The latter still creates the typelib interop assembly as well.
Find the COM library and run the following:
regsvr32.exe Library.ext That will call the DllRegisterServer export. If you wedge a /u in between, it will call DllUnregisterServer and unregister your library.
Note also that the .lib (static library) and .exp (exports) files won't make a difference. These are really only useful in C/C++ applications (during the linking process).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Ok Heath,it works now in awindows application nut I have to use it in a web service, when I initiate it there I got this error
Could not instantiate ActiveX control '0b6a9e9b-648e-11d8-9562-b4b5d2900919' because the current thread is not in a single-threaded apartment.
I know that there is property in ASP.NET exist name AspCompat which exactly solve this problem, but do you know about how to set it in web service?
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
I take it you're trying to use this ActiveX control server-side, right? If not, you merely add the ActiveX control to the web page, which really has little to nothing to do with ASP.NET. Since you added it to a Windows Forms, I can only assume that it's a graphical ActiveX control which means that it most likely won't support the right threading models for multi-threaded use (which ASP.NET runs under), and won't have a Window container in which it's hosted.
Microsoft MVP, Visual C#
My Articles
|
|
|
|