|
No, I want to get notified every minute!
|
|
|
|
|
This isn't the forum for that (it's a not a C#/.NET problem). Ask in either the Operating Systems directory or visit the Microsoft newsgroups at http://msdn.microsoft.com/newsgroups/[^].
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I have a request from a client who wishes to use either the Enter Key or the Arrow Key, as well as the Tab key, to move from field to field in a Windows Form.
Is it possible?
Fred S. Parker
|
|
|
|
|
Yes. Look into KeyPreview , OnKeyPress , and TabIndex .
KeyPreview instructs the framework to send you the keys pressed on the form. OnKeyPress will allow you to see what key is pressed. TabIndex will help you determine which control to give focus to.
This posting is provided "AS IS" with no warranties, and confers no rights.
Alex Korchemniy
|
|
|
|
|
Instead of walking the tab indexes yourself, just use the Control.GetNextControl method like so in your Form :
if (ActiveControl != null)
ActiveControl.GetNextControl(ActiveControl, true); Use can pass false to the second param to go backward. You should do this when the shift key is down.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
* ducks *
Probably overslept a little too much
Alex Korchemniy
|
|
|
|
|
We can use these methods,such as ZeroMemory() and memcpy() in VC++ to manage memory,so what about those matters in C#?
Thanks!
|
|
|
|
|
Since C# runs in a MANAGED execution environment, these functions are pretty much useless. If you create a new array, the memory is automatically zero'd out. Copying memory is not exactly a feasible operation because of the nature of how objects can be stored in memory. It's always better to use the objects Copy() or Clone() methods, if they support it.
There are always ways to duplicate the functionality to you need in C# other than using the shortcuts these functions provide to C++.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
get it.
^_^Thanks!
Good luck!
momer
|
|
|
|
|
is there anything like ShellExecute in C# to launch other applications?
|
|
|
|
|
|
i am using a treelistview (found here at codeproject) that is populated with potentially hundreds of items (test cases). on start my app will fill the tree with all the test cases and i give the option to reset the tree to inital state, which essentially just reloads again all the test cases to initial state. the problem is when these test cases are all loaded into the tree and all the initial subitems are reset, it's so slow you can watch the tree fill from the top to the bottom with a lot of flickering at the same time. my question is do i need to do double buffering? i don't know how hard double buffering is, but i thought maybe it would be easier just to disable painting while the tree is being filled and have it repaint everything when it's all done. that way i may be able to avoid all the panting and flickering while the tree is loading. it's ok for the user to have to wait a sec for the tree to load, so as long as they don't have to actually watch it load and all the flickering. is there a way to do this?
thanks!
|
|
|
|
|
In the normal TreeView class, you'd just call it's .BeginUpdate() and .EndUpdate() methods around the code where your clearing the date from the TreeView. I have no idea if the TreeListView your using exposes such methods. Double-buffering will NOT help your situation, simply because the TreeListView is redrawing itself after it removes/adds a node from/to the Tree.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Inside a tabpage I have a treeview docked to the left hand side from which the users drags treenodes onto a panel on the right. If the tree view is showing the vertical scrollbar then when dragging over the scrollbar slowly the drag and drap is being automatically cancelled
why ?
All help gratefully accepted
Thanks in advance
alan
|
|
|
|
|
hi, i need to save my GDI+ drawing and print them. for my save function i tried this but it saves as blank:
<br />
bt = new Bitmap (800,600);<br />
myGraphics = Graphics.FromImage(bt);<br />
<br />
private void saveImages()<br />
{<br />
SaveFileDialog saveFileDialog1 = new SaveFileDialog();<br />
saveFileDialog1.Title ="Save File";<br />
saveFileDialog1.Filter = "JPEG Images (*.jpg,*.jpeg)|*.jpg;*.jpeg|Gif Images (*.gif)|*.gif|Bitmaps (*.bmp)|*.bmp";<br />
if(bt != null)<br />
{<br />
if ((saveFileDialog1.ShowDialog() == DialogResult.OK))<br />
{<br />
string strFileName = saveFileDialog1.FileName;<br />
bt.Save(strFileName ,ImageFormat.Bmp);<br />
}<br />
}<br />
}
why is this so. and hw do i go about doing the print function?
Chris
|
|
|
|
|
Why would you expect there to be anything in your bitmap? You aren't drawing anything. If you think you are, then be sure to post all relevent code.
To print images, you use the System.Drawing.Printing namespace members, like PrintDocument . This will give you a Graphics object that you can use to draw your image (like Graphics.DrawImage ) to the print device.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
sorry.. here are my codes.
<br />
public class Graph : System.Windows.Forms.Form <br />
{<br />
public Bitmap bt;<br />
public Graphics myGraphics; <br />
<br />
public Graph()<br />
{<br />
bt = new Bitmap (800,600); <br />
myGraphics = Graphics.FromImage(bt);<br />
}<br />
<br />
protected override void OnPaint(PaintEventArgs e)<br />
{ <br />
base.OnPaint(e);<br />
DrawImage(e.Graphics);<br />
}<br />
private void DrawImage(Graphics myGraphics)<br />
{<br />
Pen myPen1 = new Pen (color.Blue,1);<br />
<br />
Point pt20 = new Point (20,30);<br />
Point pt21 = new Point (250,30); <br />
<br />
myGraphics.DrawLine (myPen1,pt20,pt21); <br />
}<br />
<br />
public Bitmap ReturnImage()
{<br />
DrawImage(myGraphics);<br />
return bt;<br />
}<br />
<br />
private void saveDrawing()<br />
{<br />
SaveFileDialog saveFileDialog1 = new SaveFileDialog();<br />
saveFileDialog1.Title ="Save File";<br />
saveFileDialog1.Filter = "JPEG Images (*.jpg,*.jpeg)|*.jpg;*.jpeg|Gif Images (*.gif)|*.gif|Bitmaps (*.bmp)|*.bmp";<br />
<br />
if(bt != null)<br />
{<br />
if ((saveFileDialog1.ShowDialog() == DialogResult.OK))<br />
{<br />
string strFileName = saveFileDialog1.FileName;<br />
bt.Save(strFileName ,ImageFormat.Bmp);<br />
}<br />
}<br />
else<br />
{<br />
MessageBox.Show("Blank bitmap");<br />
}<br />
<br />
}<br />
<br />
private void btnSave_Click(object sender, System.EventArgs e)<br />
{<br />
saveDrawing();<br />
}<br />
}<br />
}
thanks.
Chris
|
|
|
|
|
The first error that I noticed right away: never store your Graphics object. You either use the one passed to you in the PaintEventArgs from your OnPaint override, or create one for your control using Control.CreateGraphics (if you want a compatible bitmap on which to draw; having a compatible bitmap means the measurement units are the same, the scaling factors, etc., as the control itself). If you create a Graphics object for a Bitmap , at least use a bitmap that is the same size as the control.
In addition to not storing the Graphics , you shouldn't even store the Bitmap (factors can change; if the user changes the screen resolution or DPI settings, for example, your bitmap may not look right because GDI+ will now draw differently), and always dispose of objects like Graphics and Bitmap to make sure their native, unmanaged resources are freed immediately (they're unmanaged because the GC doesn't know about them and won't free them automatically like it does for managed objects). If not, that memory may remain allocated for some time until the GC gets around to finalizing (destroying) the object; and the only reason the native resources are freed is because the classes follow the disposable pattern (the finalizer disposes only unmanaged objects, while the IDisposable implementation disposes both unmanaged and managed objects immediately).
The code you should be using would be similar to the following:
class Graph : Form
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
DrawImage(e.Graphics);
}
private void DrawImage(Graphics g)
{
}
public Bitmap ReturnImage()
{
Bitmap bmp = new Bitmap(Width, Height);
using (Graphics g = Graphics.FromImage(bmp))
DrawImage(g);
return bmp;
}
void SaveDrawing()
{
using (SaveFileDialog dialog = new SaveFileDialog())
{
if (dialog.ShowDialog() == DialogResult.OK)
using (Bitmap bmp = ReturnImage())
bmp.Save(dialog.FileName, ImageFormat.Bmp);
}
}
}
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
hi, i've got this graph drawn using GDI+. now i need to draw a vertical line across this graph. when i click a button, it moves this vertical line horitontally from left to right of the graph. when this happens, the line wiil read each points of the line graph drawn. any idea anyone??
Chris
|
|
|
|
|
Are you trying to create a piece of code for drawing a math function?? The moving line is supposed to tell the user the location of the intersects??
If so the best approach is to calculate the point using the function to make sure its accurate.
This posting is provided "AS IS" with no warranties, and confers no rights.
Alex Korchemniy
|
|
|
|
|
hi, i've drew this small rectangle using GDI+. i've got button1 and button2. both this button will display the same rectangle when clicked. When i click button1, it displays my rectangle without a problem. however, when i clicked button2, it displays my rectangle but at a differenct position. i set its myGraphics.TranslateTransform(0,0) but it's not working. why is this so?
Chris
|
|
|
|
|
nuttynibbles1984 wrote:
both this button will display the same rectangle ...
when i clicked button2, it displays my rectangle but at a differenct position.
Since a rectangle is basically a Point and a Size , the fact that it's drawn in a different location means it's not the same rectangle. The answer is in your code, but since you didn't post any it's pretty much impossible to say where it is going wrong.
Charlie
if(!curlies){ return; }
|
|
|
|
|
here are the codes..
<br />
private void DrawSmallRect(Graphics myGraphics)<br />
{<br />
Rectangle myRect1 = new Rectangle (140,200,350,250)<br />
LinearGradientBrush lBrush1 = new LinearGradientBrush( myRect1,<br />
Color.LightGray,<br />
Color.White,<br />
LinearGradientMode.Vertical );<br />
<br />
myGraphics.FillRectangle (lBrush1,myRect1);<br />
}<br />
private void button1_Click(object sender, System.EventArgs e)<br />
{<br />
temp1 = 1;<br />
}<br />
private void button2_Click(object sender, System.EventArgs e)<br />
{<br />
temp2 = 1;<br />
}<br />
<br />
protected override void OnPaint(PaintEventArgs e)<br />
{ <br />
if(temp1 == 1)<br />
{<br />
DrawSmallRect(e.Graphics);<br />
}<br />
if(temp2 == 1)<br />
{<br />
DrawSmallRect(e.Graphics);<br />
}<br />
}<br />
i'm trying to draw the same rectangle. i wanna see if it draws onto the same position. Thanks<br />
Chris
|
|
|
|
|
I don't really get what you're after here. It appears you are setting some sort of flag by setting temp1 and temp2 to 1, but you then proceed to do the exact same thing for each value.
Charlie
if(!curlies){ return; }
|
|
|
|
|
ya this is a test out. i want to test out whether if i draw the same image twice or more, will it be draw at the same position??the things is when i call button1, it displays the rectangle. since it is the same rectangle, even if i click button2 to display the rectangle twice, it will draw over the previous drawing rite? And at the same position because of the same rectangle? but wen i click button2, the rectangle will be drawn bottom of the first rectangle... why>??
Chris
|
|
|
|