|
Hi,
I'm trying to write caption on my main window.
hTheme = OpenThemeData(hWnd, L"MyClass");
but above code always returns hTheme as NULL.
Am I missing soemthing here?
Thanks for help.
|
|
|
|
|
Magic is a user interface library written in C# for .NET, all the source and samples are available free of charge for download. Version 1.1 has now been released.
Features...
Docking Windows
TabControl
InertButton
MenuItem dervied class
Phil Wright
uk_phil_wright@hotmail.com
|
|
|
|
|
//
// What am I doing wrong here?
//
using System;
using System.Net.Sockets;
using System.Threading;
class Class1
{
[STAThread]
static void Main(string[] args)
{
WorkerClass w = new WorkerClass();
// If I call the Start method on the
// main thread, the code works properly
// w.Start();
// But I want to run the code on a own worker thread.
// However, the code will throw an exception.
// Unhandled Exception: System.IO.IOException:
// Unable to read data from the transport connection.
// ---> System.Net.Sockets.SocketException:
// The I/O operation has been aborted because of either a thread exit or an application request
Thread workerThread = new Thread(new ThreadStart(w.Start));
workerThread.Start();
Console.ReadLine();
}
}
class WorkerClass
{
private TcpClient tcp;
private AsyncCallback readCallback;
private byte[] buffer;
public void Start()
{
buffer = new byte[1024];
readCallback = new AsyncCallback(ReadComplete);
tcp = new TcpClient();
tcp.Connect("www.microsoft.com", 80);
byte[] request = System.Text.ASCIIEncoding.ASCII.GetBytes("GET /\n\n");
tcp.GetStream().Write(request, 0, request.Length);
ReadStart();
}
private void ReadStart()
{
tcp.GetStream().BeginRead(buffer, 0, buffer.Length, readCallback, null);
}
private void ReadComplete(IAsyncResult ar)
{
int bytesRead = tcp.GetStream().EndRead(ar);
Console.WriteLine("{0} bytes read.", bytesRead);
if (tcp.GetStream().DataAvailable)
ReadStart();
}
}
---
John R. Lewis
john@aspZone.com
|
|
|
|
|
I come from an MFC background where in general the hungarian naming convention is used: variables are preceded by a mnemonic representing their type, e.g. an int starts with 'n' - "nCount", a string starts with 'str' - "strName", etc. Also member variables in a class are preceded by 'm_'.
Looking through the sample code in VS.NET it is obvious this kind of naming convention is not used in C# so what is generally used? Does Microsoft specify any standard?
|
|
|
|
|
I was reading somewhere recently that Microsoft no longer recommends nor uses Hungarian.
"Thank you, thank you very much" Elvis.
|
|
|
|
|
|
MS doesn't suggest using hungarian notation anymore, instead they suggest using, um... I forget the word :-P
For publicly accessable variables/properties/fields use MyVariable
For private variables/properties/fields use myVariable [Camel casing?]
Method names regardless of scope use MyMethod, classes the same MyClass.
For exceptions end the exception name with Exception, attributes should end with Attribute.
Thats all i can remember right now [not at my home PC].
HTH,
James
Sonork ID: 100.11138 - Hasaki
"Not be to confused with 'The VD Project'. Which would be a very bad pr0n flick. " - Michael P Butler Jan. 18, 2002
|
|
|
|
|
Thanks for that. What about things like forms and form controls, I've seen prefixes of 'btn' used for Button controls and 'frm' used for Forms. Or is that just VB programmers who won't give up their bad habits?
|
|
|
|
|
I think its VB programmers who don't give up bad habits.
I've switched from lstItems for a listbox of Items to just plain Items if its the only one, or itemsLst (or even itemsList) if there is more than one 'items' object.
James
Sonork ID: 100.11138 - Hasaki
"Not be to confused with 'The VD Project'. Which would be a very bad pr0n flick. " - Michael P Butler Jan. 18, 2002
|
|
|
|
|
James T. Johnson wrote:
For publicly accessable variables/properties/fields use MyVariable
For private variables/properties/fields use myVariable [Camel casing?]
Hmmm, I've gotten used to NEVER creating publicly accessable variables or fields, preferring instead to provide access to them via properties. Is that unecessarily innefficient do you think?
Just another wannabe code junky
|
|
|
|
|
Senkwe Chanda wrote:
Hmmm, I've gotten used to NEVER creating publicly accessable variables or fields, preferring instead to provide access to them via properties. Is that unecessarily innefficient do you think?
Not at all, I prefer to use properties myself but I have used fields from time to time; mainly when I am making a readonly field in which case the data cannot change so there is no sense in making it a property (usually the reason for a property is so that data validation can be performed or a database lookup).
Depending on how I plan on using it, I may make the values in a struct fields, but in most cases those are properties as well.
James
Sonork ID: 100.11138 - Hasaki
"My words but a whisper -- your deafness a SHOUT.
I may make you feel but I can't make you think." - Thick as a Brick, Jethro Tull 1972
|
|
|
|
|
I don't know about other peoples standards--this is what I use:
private instance fields: _camelCasing
private static fields: s_camelCasing
public instance/static properties: MixedCase
any methods: MixedCase
any classes: MixedCase
local variables: camelCasing
local parameters: camelCasing
controls on a form: _camelCasing (because after all, they are just private fields)
Since there are no global functions or variables in C#, you can make various assumptions in your code. If you have the following snippet:
variable = "value";
Then you know that you are either have a local parameter to the current method, a local variable, an instance field/property, or a static field/property. Local parameters and local variables can be treated in a similar way (because they are all local to the current method). I use camel casing preceded with an underscore for private instance fields (so that I don't have to deal with name clashes). I precede static fields with "s_" for the same reason.
The VS.NET IDE provides tooltips with detailed information about the variable/type that the mouse hovers over. Embedding the type into every variable name becomes somewhat redundent.
--
Peter Stephens
|
|
|
|
|
There are times in my application that I want to prevent the user from exiting the application window with the exit button (the X button in the upper right hand corner of most window applications).
I want in some circumstances to print out a message box and to let the user know that the application is in a state that cannot exit the application and to keep it running.
The following code catches that application exiting from clicking on the exit button, and prints out the message box. But how can I stop the application from continuing with the exit ?
Actually, by the time the message box is printed, the application window is already closed.
I am fairly new at C #, any help is appreciated.
static void Main(string [] args)
{
Application.ApplicationExit += new EventHandler(ApplicationExitEventHandler);
Application.Run(new CsMain());
}
static void ApplicationExitEventHandler(Object sender, System.EventArgs e)
{
if (state != CLOSED_STATE)
{
MessageBox.Show("Error ! \n\nThe line is still open. You must close the \nline before terminating the application", "CsTdrv", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
|
|
|
|
|
Hi,
Here I am assuming you are inheriting from the System.Windows.Forms.Form class. In the class add an EventHandler to the Closing Event e.g.
Form.Closing += new CancelEventHandler(MyClose);
Then create the code in here, you can cancel the event using the CancelEventArgs e.g.
MyClose(object sender, CancelEventArgs)
{
.......
if(shouldNotClose)
e.Cancel = true;
}
Hope this helps,
Andy
|
|
|
|
|
I need to write a help application for a windows desktop program like the one that appears in many of Microsoft's windows products that includes a Contents tab, Index tab and a Search tab with a results window to the right side. Can anyone offer some direction to help me get started?
Kyle
|
|
|
|
|
Hello eveyone,
I want to handle Visio events from C#. Do you have any idea on how to do this?
Visio object has some Event handlers but I couldn't use them.
|
|
|
|
|
I have a treeview with the nodes inside the treeview. I would like to show the contextMenu on the node selected whenever the node is selected.
Unfortunately, i can't do that because the node is not a control.
Anyone out there can help, please????
Thank you
Regards,
cK
|
|
|
|
|
put a ContextMenu on your Form
private System.Windows.Forms.ContextMenu contextMenu;
Example:
(I used a Treeview (treeview) with 3 Nodes, every Node has one SubNode
and my ContextMenu has two MenuItem's)
Declare two Menu-Items for the ContextMenu:
private MenuItem contextMenuItem1 = new MenuItem();
private MenuItem contextMenuItem2 = new MenuItem();
Add the following Code to your Constructor:
//Initialize Context-Menu
this.treeView.ContextMenu = this.contextMenu;
contextMenuItem1.Text = "Action 1";
contextMenuItem2.Text = "Action 2";
this.contextMenu.MenuItems.Add(0,contextMenuItem1);
this.contextMenu.MenuItems.Add(1,contextMenuItem2);
contextMenuItem1.Click += new System.EventHandler(this.contextMenu_Action_1);
contextMenuItem2.Click += new System.EventHandler(this.contextMenu_Action_2);
Override the MouseDown Event from your Treeview Control:
private void treeView_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button != MouseButtons.Right) return;
this.contextMenuItem1.Text = "Action 1";
this.contextMenuItem2.Text = "Action 2";
TreeNode selectedTreeNode = this.treeView.GetNodeAt(new Point(e.X,e.Y));
if(selectedTreeNode != null)
{
this.contextMenuItem1.Text = "Action 1 (Selected Node = " + selectedTreeNode.Text + ")";
this.contextMenuItem2.Text = "Action 2 (Selected Node = " + selectedTreeNode.Text + ")";
}
}
Implement the Funktions for the Eventhandler:
private void contextMenu_Action_1(object sender, System.EventArgs e)
{
if(this.contextMenuItem1.Text == "Action 1")
MessageBox.Show("Action 1 fired for Treeview");
else
MessageBox.Show("Action 1 fired for selected Node in Treeview");
}
private void contextMenu_Action_2(object sender, System.EventArgs e)
{
if(this.contextMenuItem2.Text == "Action 2")
MessageBox.Show("Action 2 fired for Treeview");
else
MessageBox.Show("Action 2 fired for selected Node in Treeview");
}
I Hope this was helpfully for you.
rgrds
Martin
|
|
|
|
|
I have solved the problem. Anyway, thank you for your helpful code!!
|
|
|
|
|
{Hi:I'm writing a program in C to shut-down Windows OS; I'm wondering if any of the members know the code,or how to access the "kill" sequence(not the code to load the "shut_downDialogBox)Thanks for your "input")}
|
|
|
|
|
ExitWindowsEx()
look it up in msdn..
|
|
|
|
|
How can I obtain the local IP address in C#?
Thanks much to anyone that can help me!!
|
|
|
|
|
|
I am having problems getting a simple timer to work. I am very new to C#. When I go to compile the code below I get the following error:
An object reference is required for the nonstatic field, method, or property 'TimerTest.mStartTime'
Anyone got any ideas ?
using System;
using System.IO;
using System.Timers;
class TimerTest
{
public DateTime mStartTime;
public static void Main()
{
Timer tmr = new Timer();
tmr.Tick += new EventHandler(OnTimedEvent);
tmr.Interval= 1000;
DateTime mStartTime = DateTime.Now;
Console.WriteLine("Timer test running...");
tmr.Enabled = true;
while(true)
{
}
}
public static void OnTimedEvent(object source, EventArgs e)
{
String timestring;
DateTime now = DateTime.Now;
TimeSpan diff = now.Subtract(mStartTime);
timestring = (diff.Hours.ToString("d2" + ":" + diff.Minutes.ToString("d2") + ":" +
diff.Seconds.ToString("d2"));
Console.WriteLine("{0}",timestring);
}
}
|
|
|
|
|
B. Wood wrote:
public DateTime mStartTime;
public static DateTime mStartTime;
Since your methods are static, the data it accesses must be static, or have a reference to an instance of the class.
James
Sonork ID: 100.11138 - Hasaki
"Not be to confused with 'The VD Project'. Which would be a very bad pr0n flick. " - Michael P Butler Jan. 18, 2002
|
|
|
|