|
Hi,
I am trying to get status text of the browser using following code but for some reason I am not getting any values back. Any idea why?
// both lines doesn't work
string result = webBrowser1.Status.Text;
string result = webBrowser1.Document.Window.StatusBarText;
Thanks
A.Asif
|
|
|
|
|
|
|
I've been using the WMI code generator to get my start, but I'm having trouble figuring out how to implement WMI in C# on my own.
I've figured out that what I'll probably do to check who is logged on the computer remotly is use:
-Win32_Process, filter where name='explorer.exe'
And then:
-GetOwner
to throw back the username.
Are u familiar on how to implement WMI in C#? I could really use a hand.
|
|
|
|
|
try this. I got the code snippet from the code generator itself. However, makesure you know which Win32_Process.Handle you want t10execute GetOwner on. In the code snippet its tied to 1076.
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class CallWMIMethod
{
public static void Main()
{
try
{
ManagementObject classInstance =
new ManagementObject("root\\CIMV2",
"Win32_Process.Handle='1076'",
null);
// no method in-parameters to define
// Execute the method and obtain the return values.
ManagementBaseObject outParams =
classInstance.InvokeMethod("GetOwner", null, null);
// List outParams
Console.WriteLine("Out parameters:");
Console.WriteLine("Domain: " + outParams["Domain"]);
Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
Console.WriteLine("User: " + outParams["User"]);
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
}
}
}
}
|
|
|
|
|
I want to user only enter integer for the employeeID property but when i enter alpha-numeric the messagebox appears twice. I want to display once what's wrong.
[TypeConverter(typeof(TypeConverters.MyIntConverter)),Browsable(true)]
public int EmployeeID
{
get { return _empID; }
set { _empID = value; }
}
=========MyIntConverter Class==============================
public class MyIntConverter : System.ComponentModel.Int32Converter
{
public override object ConvertFrom(System.ComponentModel.ITypeDescriptorContext context, CultureInfo culture, object value)
{
if (value is string)
{
try
{
return int.Parse(value.ToString());
}
catch(Exception)
{
MessageBox.Show("Invalid Number");
return 0;
}
}
return base.ConvertFrom(context, culture, value);
}
}
|
|
|
|
|
This code will only show one, so it must be getting called twice. Try setting a breakpoint and checking the call stack to see why it's called twice.
Also, if you're going to use a value, use as instead of is, it's more efficient. And I'd recommend int.TryParse instead of a try/catch.
Christian Graus - Microsoft MVP - C++
"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 feel like pulling my hairs have already spent 2 hours... I have only one propertyGrid on a form and even test on a brand new project still am getting the Messagebox twice. What i notice is that somehow it's coming twice in the Catch block. I do'nt know where else to dig.
|
|
|
|
|
Look at the call stack to see who is calling the method each time. One of the callers is presumably unintentional.
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
What i have discovered is that when the when the debugger hits to the MessageBox.Show inside the catch block it goes back to the start of the function and then start all over again. I couldn't figure out why is it behaving like this. If i remove the MessageBox.show then it works fine but i want to display my customize error message.
Line 24 is where my MessageBox.show is defined
========Below are the call stack i got==================
myHelp.exe!TypeConverters.MyIntConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext context = {System.Windows.Forms.PropertyGridInternal.PropertyDescriptorGridEntry EmployeeID}, System.Globalization.CultureInfo culture = {en-US}, object value = "9s") Line 33 C#
[External Code]
myHelp.exe!TypeConverters.MyIntConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext context = {System.Windows.Forms.PropertyGridInternal.PropertyDescriptorGridEntry EmployeeID}, System.Globalization.CultureInfo culture = {en-US}, object value = "9s") Line 24 + 0xb bytes C#
[External Code]
myHelp.exe!TypeConverters.MyIntConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext context = {System.Windows.Forms.PropertyGridInternal.PropertyDescriptorGridEntry EmployeeID}, System.Globalization.CultureInfo culture = {en-US}, object value = "9s") Line 24 + 0xb bytes C#
[External Code]
myHelp.exe!myHelp.Program.Main() Line 17 + 0x1a bytes C#
[External Code]
I get this message when i do MessageBox.Show(e.StackTrace.Tostring());
at System.Number.StringToNumber(String str,NumberStyles options, NumberBuffer& number,
NumberFormatInfo info, Boolean ParseDecimal at System.Number.ParseInt32(string s,
NumberStyles style, NumberFormatInfo info) at System.Int32.Parse(string)
at TypeConverters.MyIntConverter.ConvertFrom(ITypeDescriptorContext context,
CultureInfo culture, Object value) in Document\Project\MyIntConverter.cs line 20
|
|
|
|
|
I'm guessing you have more than one event handler calling the method.
At any rate, consider using a NumericUpDown rather than a TextBox, or write a KeyPress event handler to ignore characters you don't want.
|
|
|
|
|
Hi,
To investigate your issue, I tried your TypeConverter with my product, Smart PropertyGrid.Net. I also got the form twice and this is for this reason: the grid reacts to validation with the Enter key and also to the loss of focus. When Enter is pressed, your ConvertFrom method is called and the dialog box is displayed. Because the grid does not expect any UI to be shown at that moment, it also reacts to the loss of focus and tries to validate again the new value. Therefore, the ConvertFrom is called again and the form is displayed a second time. It won't happen indefinitely since at this time, the focus has been definitely lost.
I guess that the MS PropertyGrid acts in the same way. By showing a message box, you are going against the way it's supposed to work. No UI should be displayed by a TypeConverter whose goal is just to convert. If it fails to convert a value, it's supposed to throw an exception and the grid will show it. Smart PropertyGrid has of course more flexible mechanisms to validate and show errors.
Anyway, in SPG, I was able to stop this problem by defining a static bool isInsideConvertFrom. This way I was able to stop reentrant calls. Even if I think you should not show a UI from your converter, you can try this technique with the MS grid. Maybe it will work. However, I think your grid won't gain the focus back when the message box is closed. But this is to be tested.
Best regards,
Nicolas Cadilhac @ VisualHint
Smart PropertyGrid.Net
Microsoft PropertyGrid Resource List
Free PropertyGrid for MFC
Smart FieldPackEditor.Net / DateTimePicker
|
|
|
|
|
Hi,
i would connect on a sqlserver, i use :
string strConnexion = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=Northwind";<br />
try <br />
{<br />
SqlConnection oConnection = new SqlConnection(strConnexion);<br />
oConnection.Open();<br />
MessageBox.Show("Etat de la connexion : " + Connection.State);<br />
oConnection.Close(); <br />
} <br />
catch (Exception e) <br />
{ } <br />
but they are an exception,i use sqlexpress,
Thank you verry mutch.
|
|
|
|
|
post the exception you get.
|
|
|
|
|
J4amieC wrote: post the exception you get.
Look at the code:
catch (Exception e)
{ }
He is using the anti-pattern known as "try-catch-ignore"
|
|
|
|
|
This is the usual connection string I use for SQL Express.
Server=[MachineName]\SQLEXPRESS;Database=[DbName];Trusted_Connection=yes;
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|
|
How to clear value of a Textbox from javascript.
How to use value of a string variable defined .aspx ,
in some conditions in javascript.
i.e
if (abc=="XYZ")
return true;
else
return false;
abc is defined in .aspx.
How to enable/disable visibility of a dropdownlist from javascript.
|
|
|
|
|
I'm going to answer the middle question, the other two are so trivially answered by google, that you really should learn how google works to answer them.
Your C# code runs on the server, the script runs on the client. You can get a changing string value using AJAX calls, but for a static string, just inject code into your web page that defines a javascript variable which contains the string in question, then you can access it on the client side.
Christian Graus - Microsoft MVP - C++
"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 )
|
|
|
|
|
To modify a server control in javascript you need the actual HTML id. IE supports just typing the control name to get the id but I do not think FF does, and in fact it is self defeating. So here is the pattern I use.
In the globals for a page js:
var someControl = document.getElementById('<%=someControl.ClientID%>');
Then in the js method use someControl like an object.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|
|
I have a few questions reguarding custom serialization...
1. Is there a way to make enums serialize as integers instead of as named enum members? (I am using the enum as a flag field, so it has no name but is still meaningful)
2. How can I make a custom serializer/deserializer for an object to be used in place of the default? I tried to implement the ISerializable interface, but my ISerializable methods never get called.
Thanks in advance,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
|
Ok... I have already done that and my methods still are not being called. I had both methods marked as public and thought that may be causing the problem, so I copied and pasted the example, but still my methods do not get called. My current code is copied below to illustrate the problem...
Here is my Web Method:
[WebMethod]
public Foo GetFoo() {
return new Foo(9);
} And here is the definition of Foo:
[Serializable]
public class Foo : ISerializable {
private int m_Int = 5;
public Foo() { }
public Foo(int val) { m_Int = val; }
protected Foo(SerializationInfo info, StreamingContext context) {
m_Int = (int)info.GetValue("Value", typeof(int));
}
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) {
info.AddValue("Value", m_Int);
}
} When I call my web method, the class Foo is serialized using the default serializer, which is to say that it is serialized as being empty (since there are no get & set properties). Is there some reason why my ISerializable methods are never called? Thanks,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
Drop the attribute
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|
|
I dropped the "[Serializable]" attribute, but am still getting the same results. Any other ideas?
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
Should be working, by getting the same results what are you referring? Are you not hitting a breakpoint or are you getting unexpected output?
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway
|
|
|
|