|
Hi everybody:
I'm doing my first application in .NET.
I know how use in my application the Visual Xp Styles.
//before running in main form.
Application.EnableVisualStyles()
But, is not exactly that I want. I only want get, at runtime, the name ( or any other ID ) of the current actived Theme from OS Windows, and (if is XP) current actived Visual Style.
Can anybody help me?
Advanced Thanks.
Best Regards.
|
|
|
|
|
look out for WMI. It's in the Namespace System.Management
scio me nihil scire
My OpenSource(zlib/libpng License) Engine:
http://sourceforge.net/projects/rendertech
Its incurable, its a Pentium division failure.
|
|
|
|
|
Try poking around in the Visual Styles Reference[^] of MSDN. You will want to look at OpenThemeData() and various other functions depending on what you are looking for.
- Nick Parker My Blog
|
|
|
|
|
P/Invoke GetCurrentThemeName from the uxtheme.dll library:
[DllImport("uxtheme.dll", CharSet=CharSet.Unicode)]
private static extern void GetCurrentThemeName(
out string themeFileName,
int maxFileNameChars,
out string colorSchemeName,
int maxSchemaNameChars,
out string sizeName,
int maxSizeChars); You should only call this if theming is supported, otherwise an exception will be thrown (since uxtheme.dll won't be found on older systems). You can do this like so:
Version v = OSFeature.GetVersionPresent(OSFeature.Feature.Themes);
if (v != null)
{
} You should also P/Invoke IsThemeActive to see if the theming is even active for the current OS:
[DllImport("uxtheme.dll")]
private static extern bool IsThemeActive(); Again, only call this if theming is supported by the OS.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hello,
I have a .aspx.cs file and a group of .cs files I need to compile together. When I try this on Visual Studio .NET, there are no compile issues, but when I try to execute the file, it comes across a literal form control ("error_tags") and gives error "type or namespace cannot be found".
The class in the .aspx.cs files inherits from a base class in the .cs file. The base class contains the definition "public Literal error_tags;" Is the issue that the .cs files are not being compiled?
Previously, when I was compiling my .dlls from the command line and moving them to the bin folder I had no issues.
Any ideas?
Thanks.
|
|
|
|
|
Is the .aspx referencing the right class in the code behind ?
The 'Page' directive should have the 'Inherits' attribute:
Inherits="YourNameSpace.YourClass"
|
|
|
|
|
Yes, the .aspx reference is fine - like I said, things were working fine when compiling from the command line. It has to do (I believe) with compiling in Visual Studio .NET.
|
|
|
|
|
The <%@ Page%> should inherit from the class defined in the .aspx.cs file, as well as contain the name of the assembly in which that class is contained. If the class in that file inherits from another class defined in another .cs file, that latter class should derive from System.Web.UI.Page .
If you right-click on the files, select Properties, and examine the "Build Action" property, these should say "Compile". This is the default build action for .cs files. If the project compiles all the files set for compilation and there are no build problems, then all your Types are being resolved correctly. The only problem would be that the Inherits attribute of the <%@ Page%> declaration probably isn't referencing the right Type, and / or the CodeBehind attribute does not specify the path to the correct .aspx.cs file.
Finally, make sure that the Liberal error_tags class is declared as public , protected (recommended), internal , or protected internal . If it is declared as private no class - including subclasses - can access it without using reflection (which is expensive and not a very good design).
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I'v never used XML before today, and I have a small query. With Microsofts XML namespaces, is it be possible to pass variables taken from a serialised object through (set) property procedures?
|
|
|
|
|
dalm wrote:
With Microsofts XML namespaces, is it be possible to pass variables taken from a serialised object through (set) property procedures?
What exactly do you mean? If you're using the XML Serialization classes from System.Xml.Serialization , then public properties are serialized by default (you can control this with the attributes like XmlElementAttribute and XmlAttributeAttribute . When deserializing, the values are assigned to the properties again via the set accessor so any code you have in the set accessors will be run.
For more information - including examples - on XML Serialization, see http://msdn.microsoft.com/library/en-us/cpguide/html/cpconintroducingxmlserialization.asp[^].
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
When I use a manifest file to enable windows xp themes the calendar control get seriously screwed up. When a range is selected the painting isn't done properly. Has anyone ran into this before? Any solutions to this?
|
|
|
|
|
Is it possible to make ANY string "clickable", just like http:// links can be clicked (if you turn on detect URLS), in a richtextbox? Or maybe make an icon, picture or other objects "clickable"?
/Fredrik
|
|
|
|
|
I think you have to write yout custom richtextbbox control or use axBrowser control.
Mazy
No sig. available now.
|
|
|
|
|
Just add a handler to the LinkClicked event, something such as the following will work:
RichTextBox input;
input.LinkClicked += new LinkClickedEventHandler(Link_Clicked);
protected void Link_Clicked(object sender, LinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(e.LinkText);
}
- Nick Parker My Blog
|
|
|
|
|
But this only works for URLs, I want it to work for ANY type of string..
Fredrik
|
|
|
|
|
Sorry, I didn't see that. I believe you are going to have to subclass the WndProc and watch for EN_LINK message. To receive this message you will also need to send the EM_SETEVENTMASK message as it specifies the event messages to send to the parent window. You should be able to cast the lparam to a ENLINK structure which contain helpful information such as a CHARRANGE structure that will tell you the range of characters. This should at least point you in the right direction but it will require a little work. Hope this helps.
- Nick Parker My Blog
|
|
|
|
|
I am developing a program in which there is dynamically generation of some fields let us take the example of label control now i dynamically generate them after taking input from user. when the user right click on any label i will show him a context menu through which he can select the font, color etc and on the selection of that a different dialog box will be selected now Actual problem is that after the selection of that color or font i want to know on which label control user has right clicked on how i will get that . sorry for poor english
Thanx in advance
Regards
INAM
Inam
|
|
|
|
|
The default delegate is void Delegate(object sender, EventArgs e)
you can get it by casting sender to label
|
|
|
|
|
If I understand you correctly, you need to know control which triggered context menu when you handle MenuItem.Click event. When you handle this event sender is a context menu so it wont't help you much. However, if you handle ContextMenu.Popup sender is the control triggering the event. What you can do is this: create a field in the class where you handle events
object controlWhichTriggeredEvent;
Then create a handler for ContextMenu.Popup :
private void YourContextMenu_Popup(object sender, System.EventArgs e)
{
controlWhichTriggeredEvent = sender;
}
Now when you handle MenuItem.Click , controlWhichTriggeredEvent will contain the latest control clicked by user (you will have to cast it to label of any other control).
|
|
|
|
|
hi all
i wanted to ask about how to ignor keyboard And mouse input
|
|
|
|
|
For your keyboard i your Key_Press event you can set the e.Handled to true. Other way is to implement IMessageFilter and use AddMessageFiletr , so you can handle all events for your application. Look in MSDN for more information and how to use them.
Mazy
No sig. available now.
|
|
|
|
|
I've got a bit of an obscure problem extracting my objects from a HashTable. The basic idea is that the hashtable is populated with objects - which are classes of UTServer. UTServer is a class that contains various variables and a single method - refresh(). I also need to use a hashtable because of the key it uses (since I have to link my hashtable to a listview later on and want it to be as fast as possible)
I don't appear to have any trouble adding the UTServer classes into the hashtable. However getting these out and reading the variables held inside is proving to be difficult.
My Code as follows:
//Declaring the hashtable publicly
Hashtable servers = new Hashtable();
//Adding a UTServer into the hashtable
UTServer myServer = new UTServer();
myServer.ip = "192.168.0.1"
myServer.port = "7777";
myServer.queryOffset = "10";
myServer.game = "ut";
myServer.serverID = 1;
servers.Add(myServer.serverID, myServer);
(when counting the objects in servers - it returns the correct amount)
//UTServer class that is added into the hashtable
public class UTServer
{
public String ip = "";
public String port = "";
public String queryOffset = "";
public String game = "";
public long serverID;
public UT2003Server remoteServer = new UT2003Server();
public void Refresh()
{
remoteServer.Ip = ip;
remoteServer.Port = int.Parse(port);
remoteServer.Protocol = UT2003Server.QueryProtocol.Mixed;
remoteServer.Refresh(game);
}
}
//My code that doesn't work
object obj1 = servers[1];
UTServer b = new UTServer();
b = (UTServer) obj1;
MessageBox.Show(b.ip);
(it should in the messagebox show the ip "192.168.0.1" however it gives a null pointer exception instead.
I would greatly appreciate any advice anyone has, thank you.
Peter
|
|
|
|
|
Peter Mills wrote:
object obj1 = servers[1];
This is a bit of a stab-in-the-dark but the literal 1 you have is an int where as you define UTServer.serverID as a long
Try:
object obj1 = servers[(long)1];
--Colin Mackay--
EuroCPian Spring 2004 Get Together[^]
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
|
|
|
|
|
That's done it! WOW!!!! Thanks for the help, I'd been struggling over it for hours!
Thanks,
Peter
|
|
|
|
|
I have a Cobra LS 1900 bar code scanner that I would like to add in to a C# application. But I have no idea how to do this. The scanner I have connect to the keyboard connection and keyboard is connected to the scanner basically it’s a Y cable. If any one gives some direction which way I should go Greatly Appreciated!!
Thanks so much
CJ
|
|
|
|