|
Most of them, but this isn't the right forum.
--
-Blake (com/bcdev/blake)
|
|
|
|
|
I am trying to get a flat toolbar to work with the lighter gray look of the XP toolbar, as with IE.
I am calling Application.EnableVisualStyles(); in Main.
I set ToolBar.Appearance to ToolBarAppearance.Flat .
However, the button bar ends up a darker gray than it should and there are are an additional 4 or so extra pixels of gray beneath the buttons. (The buttons do show the transparent type look when selected, however.)
What am I doing wrong, if anything?
When all else fails, there's always delusion.
- Conan O'Brien
|
|
|
|
|
Is there a c# equivalent, or another way?
|
|
|
|
|
public static short LoWord(int n)
{
return (short)(n & 0xffff);
}
public static short HiWord(int n)
{
return (short)((n >> 16) & 0xffff);
}
public static byte LoByte(short n)
{
return (byte)(n & 0xff);
}
public static byte HiByte(short n)
{
return (byte)((n >> 8) & 0xff);
}
|
|
|
|
|
Heh, you beat me to the submit button. :P
--
-Blake (com/bcdev/blake)
|
|
|
|
|
While those macros themselves won't work due to C# not having a macro preprocessor (a good thing) the same expressions used in defining them will work fine. You can express them as methods, which will certainly be inlined by the JIT.
From windef.h:
#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xffff))
#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xff))
#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8)) So in C#:
public static ushort LowWord(uint value) {
return (ushort)(value & 0xFFFF);
}
public static ushort HighWord(uint value) {
return (ushort)(value >> 16);
}
public static byte LowByte(ushort value) {
return (byte)(value & 0xFF);
}
public static byte HighByte(ushort value) {
return (byte)(value >> 8);
}
--
-Blake (com/bcdev/blake)
|
|
|
|
|
|
Maybe I am just looking in all the wrong places, but I can find an example of reading a remote registry.
I have seen plenty of exampels about reading the local registry, but I need to specifically connect to a remote computer.
In the end, I am going to need to read the registry and make some WMI calls and I will need to do this from outside the domain and passing in credentials.
I have figured out that I can use "RegistryKey.OpenRemoteBaseKey" but that only works if I have rights. How can I pass credentials when I try to open the remote registry?
Thanks...
|
|
|
|
|
I have my own custom user control, let's call it UCHost. This control hosts another one of my user controls (hot button).
What I would like to do is to have UCHost drawn and after it is finished I would add some drawing logic, do some neat transparency tricks on top of it, etc...
The problem is that when I capture OnPaint in UCHost, regardless of the fact that I have its styles set to UserPaint, AllDrawingInWMPaint, etc. - the button always redraws himself.
I tried to override paint in UCHost like this:
...
base.OnPaint(e);
MyPostProcessingOfUCHost(e);
...
But the hot button control always paints over my post processing.
Then I removed base.OnPaint() and was astonished to find out that the button is STILL drawn. I hooked to OnPaintBackground, removed base call but the button is STILL drawn.
How to solve this problem? How to have user control that has children user controls first draw all children, and then draw some cool and fancy stuff on top of them?
Tomaz
|
|
|
|
|
Does anyone know if it is possable to read all the required elements of an Emun from an xml file for example at runtime? I was think when the class gets constructed?
|
|
|
|
|
The short answer - Yes
The long answer involves creating a temporary assembly and creating the definition of the enum in C# code in a string then using the C# compiler services ( a set of C# classes used to compile .NET code. Very simple to use. ) to compile the C# code into a new assembly (in memory, on disk, in a database or wherever). Once compiled and loaded you should be able to use the type like any other .NET Enum
This can be done on the fly with any code, the dynamic assemblys can reside in memory and they do not need to be persisted to disk (however .NET might write out some temporary files, but these should get deleted)
Cheers, James
James Simpson
Web Developer
imebgo@hotmail.com
|
|
|
|
|
ya I read about that somewhere, I guess that is the only way then. It look fairly complex but will give it a try.
I am guessing that I will have to read the values from an xml file build the assembly, compile it, then expose the enum to the user somehow....
Anyways Thanks For Your Help.....
|
|
|
|
|
I am trying to grasp how to use select, update, insert and delete command.
I tried reading from some books Programming C# by Oreilly but it just doesnt really explain it in detail.
I was hoping if anyone can point me to some article (don't seem to have them at code project) where i can learn how to perform the above operations on MS ACCESS databases.
thanks
|
|
|
|
|
Look at OleDbConnection or OdbcConnection (Framework 1.1, some people have indicated that ODBC seems to perform better than OLE DB when invoked from C#).
Simple example:
using ( OleDbConnection conn = new OleDbConnection() )
{
conn.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"User ID=Admin;" +
@"Data Source=FPNWIND.MDB;" +
@"Mode=Read|Share Deny Read|Share Deny Write";
using ( OleDbCommand cmd = new OleDbCommand() )
{
cmd.CommandText =
"SELECT CategoryName FROM Categories ORDER BY CategoryID";
cmd.Connection = conn;
conn.Open();
OleDbDataReader rdr = cmd.ExecuteReader();
try
{
while ( rdr.Read() )
{
System.Console.WriteLine(
"Category: {0}",
rdr.GetString( 0 ) );
}
}
finally
{
rdr.Close();
}
}
} To try this, create a new C# console application, paste into Main and add using System.Data; using System.Data.OleDb; at the top.
This code opens the FPNWIND.MDB database (supplied with Office 2000) and outputs a list of all known categories to the console.
For simple manipulations of data, use OleDbCommand 's ExecuteXxx functions. If you don't expect any results (for example, if you're running an INSERT , UPDATE or DELETE statement), use ExecuteNonQuery . If you only want a single data value (the first column of the first row of the results), use ExecuteScalar .
If you have an OleDbDataReader open on a connection, you can only scroll forwards through the data, and you cannot modify the data. You cannot do anything else with that connection until you have either read all the data (Read returns false ) or have closed the reader.
ADO.NET does not have an equivalent of classic ADO's live update of recordsets. The closest is essentially a batch mode involving a DataSet (an offline cache of one or more DataTable s) and an OleDbDataAdapter . DataSet and DataTable are general classes; you use a DataAdapter from the appropriate provider to fill the data set or table and reflect any modifications back to the data source.
|
|
|
|
|
Is it possible to hook(MouseHook) another process/application using C# ?
VikramS
|
|
|
|
|
|
Hi,
i used ControlPaint.DrawCheckbox() method, but the checkbox is not drawn with XP Theme (FlatStyle.System). Is it possible to use ControlPaint class with XP Styles?
.:[Greetz from Jerry Maguire]:.
|
|
|
|
|
It doesn't seem like it. You might want to use this[^] instead.
|
|
|
|
|
Try calling Application.EnableVisualStyles(); in Main before anything else. This mostly worked for me (I'm still having problems with my toolbars not looking right.)
When all else fails, there's always delusion.
- Conan O'Brien
|
|
|
|
|
Yep, you're right, my code is
Application.EnableVisualStyles();
Application.DoEvents();
Application.Run(new MyForm());
otherwise the styles are not set right, i guess it's a framework error that i have to call DoEvents().
I have found a solution do draw controls theme aware via xp theme api, thanks.
.:[Greetz from Jerry Maguire]:.
|
|
|
|
|
Hi, how do you minimize your app to system tray in C#/.NET?
norm
|
|
|
|
|
Add a NotifyIcon to your form and assign it an icon.
set visible = false if you do not want it to be there all the time.
In the event handler where you want the app to minimize to the tray do something like:
private void btn_MinimiseToTray_Click(object sender, System.EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true;
}
and reverse it all when the icon is clicked or on a context menu etc....
|
|
|
|
|
Thanks! I successfully send the app to system tray. But I am having some trouble trying to restore it from the tray.
private void NotifyIcon_Clicked(object sender, System.EventArgs e)
{ //None of this help, the form just disappeared, never to come back.
WindowState=FormWindowState.Normal;
ShowInTaskbar=true;
BringToFront();
Focus();
Visible=true;
return;
}
I just need one more tip for this.
norm
|
|
|
|
|
did you try Activate() ?
Free your mind...
|
|
|
|
|
Thanks. But, yes I did. Activate didn't work
norm
|
|
|
|