|
I was being such a Schmuck. I was rendering to the bitmap and then setting it to the image... no wonder it crippled my drawing process.
I'm now rendering to a bitmap and flipping it to a graphics object derived from the window handle. I've added a few dozen objects to the screen and it's still taking only 16ms to render.
There are however a few issues with the regular jump to 32ms, which is still frustrating. I've tried adding a GC.Collect() command after each graphics itteration to ease things out, and that worked a bit, but i've also had to add a 10ms wait on the rendering loop to finish the smoothing, anything else and it still jumps regularly occasionaly.
|
|
|
|
|
The Catalyst wrote:
ut i've also had to add a 10ms wait on the rendering loop to finish the smoothing,
Sorry, but I don't understand: why do you need this delay? Aren't you just invalidating the picture control?
About the delays, it's hard to predict what's going on in a GC environment. Beware that adding GC.Collect() to a loop may do more harm than good to time predictability: it may move objects to Gen 2 too soon, and increase the delays, instead of reducing them.
Yes, even I am blogging now!
|
|
|
|
|
Hi
I got a little Form with a Textbox. With a Barcode Scanner I
put a Database ID into this Textbox. By onclick the Button "Show"
the DatabaseRecord will be shown in a new Form. It works great.
But I think the user should not click a Button. It's too much work
So I made a TextCahanged Event on this Textbox. The Scanner read the
Barcode and the Record should be shown. But it don't work! Why??
This is for the Button:
private void btnShow_Click(object sender, System.EventArgs e)
{
string id = this.textBoxScan.Text;
frmShow x = new frmShow(id);
x.Show();
this.textBoxScan.Text="";
}
This for the TextChanged:
private void textBoxScan_TextChanged(object sender, System.EventArgs e)
{
string id = this.textBoxScan.Text;
frmShow x = new frmShow(id);
x.Show();
this.textBoxScan.Text="";
}
And this happens on the second Form:
public frmShow(string id)
{
InitializeComponent();
string x = null;
x = id;
dc.Connection(System.Convert.ToInt32(x));
fnGetDataBindingForTextBoxes();
}
dc is an Instance from the Connection Class.
|
|
|
|
|
Don't know why the TextChanged event handler didn't work (maybe it's not submitted correctly.?).
Anyway, as you want to automatically show the second form after reading with the Barcode scanner in my opinion the textbox is pretty useless, because you write a value to it and in the TextChanged event show your form and clear the textbox. So why not showing the form directly after reading from the scanner.
Besides, you should dispose your form after using it, so the resources get cleaned up. Or use the using statement as shown by the following code snippet:
using(frmShow x = new frmShow(id))
{
x.Show();
}
www.troschuetz.de
|
|
|
|
|
But how can I call an Application or Form by only scanning a Barcode?
It's only an low Cost Scanner. During Debugging my App. a green Arrow
appears in the Solution Explorer of the second Form. The Message is
that the Code have called another Function. When this Function is done,
the next one will be called.
The mark the following row..
dc.Connection(System.Convert.ToInt32(x));
|
|
|
|
|
In your first post you wrote: "I got a little Form with a Textbox. With a Barcode Scanner I put a Database ID into this Textbox."
Thought you already do the latter in your application, so that instead of putting the Database ID into the textbox and catching the TextChanged event to open an extra form you could directly open the extra form.
Or what exactly do you mean with the phrase: "With a Barcode Scanner I put a Database ID into this Textbox."
www.troschuetz.de
|
|
|
|
|
The Cursor is set in the TextBox. I read the Barcode and the Value
appears in the TextBox. Submit the Button and the new Form, that includes
the Record, will be open. The Barcode was created from a Database ID.
ID 222 -> create a Barcode from 222 -> print a label with the Barcode
and put it on Hardware. If the Hardware is defected, we want to audit wether
Warranty is given.
|
|
|
|
|
Does your BarCode scanner send an ENTER key after the code? Most scanners can be configured to send a termination character after the code. If not, the TextChanged event won't fire until the user hits enter in the TextBox or, like in your case, clicks a button to do it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I got it.. I think so..
I can not clean the TextBox when I use the TextChanged Event.
this.textBoxScan.Text="";
When I delete this row from my Code it works. But I need
an empty TextBox.Ahrgggg...
|
|
|
|
|
You could unsubscribe the TextChanged event handler before cleaning the TextBox and then resubscribe it afterwards.
www.troschuetz.de
|
|
|
|
|
Does somebody know how to create an array of textboxes with the designer?
Please reply, if you know the answer. Thank you very much.
|
|
|
|
|
OK lets say that I have a very big DB and I want to put it in a grid now when i load the app it takes very long how can i fix that or if is not fixable how can i make a progress bar incrementing while it loads?
The second problem is that all records are in the grid and when i try to filter the grid by some values writen in an edit box again it take long to filter?
Thx
|
|
|
|
|
You are correct. Binding massive amounts of data into a datagrid can be very slow and, although the datagrid provides a built-in paging mechanism, it functions in memory, after the result set to be bound has already been returned (adding to delays).
Your best bet is to implement custom paging and load only a page worth of data at a time. This is a well-known, well-covered issue, and there are some very good articles on codeproject.com as well as here[^].
Filtering should, again, be something you do when requesting your result set from the DB, but assuming you are binding your grid to a DataView, you should be able to implement filtering in your code-behind as well; just be sure to re-bind the grid's datasource after executing the filter.
Hope this helps.
The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka!' ('I found it!') but 'That's funny...’
|
|
|
|
|
Hi every one...
I've a DataGrid with a DataView as DataSource & it cells colors changed according to their values however.......
the DataView is updates frequently & if the order changed of the columns according to the new comming values all cells change their colors... this is not what I want....
so I want to know how to find out if the rows order was changed in the DataView .......sp Plz help me
A.Mohsen
|
|
|
|
|
How can implement Drag-and-drop operation between applications?
|
|
|
|
|
The same way you do within an application. Handle the ItemDrag event (or whatever is appropriate, or even just implement dragging yourself) and serialize your data in a format that can marshal across application boundaries, like text. If you're just trying to pass a control reference it won't work because that control is owned by the application from where you're dragging. If you serialize it, however, you can deserialize it in the other application (be sure to use a unique clipboard format (a string in the .NET implementation of drag and drop that wraps OLE's drag and drop)) and add it as a new control.
If you click "Search comments" above and search this forum (always a good idea to try first) and search for "drag drop" you'll find many examples, including several posts where I've discussed cross-application drag-n-drop as well as serializing and clipboard formats.
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 m using a dll built in vc++ 6.0 that is returning a BYTE* for image and its corresponding BITMAPINFOHEADER, Now i want to display this image through a picture box (if posible)using C#
Please Help Me
|
|
|
|
|
If you're receiving a pointer to a byte array, it should be fairly easy.
Create a MemoryStream instance using the byte array in the constructor, then create a new Image instance from the stream.
Example:
public Image LoadPic(byte[] serialImage)<br />
{<br />
System.IO.MemoryStream stream = new System.IO.MemoryStream(serialImage);<br />
return System.Drawing.Image.FromStream(stream);<br />
}
Hope this helps.
The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka!' ('I found it!') but 'That's funny...’
|
|
|
|
|
thanks for your reply but i was still not able to solve the problem
first q i want to ask is that i am allocating size of image/its byte array exectly the length X width (640*48)is it right cause bitmapinfoheader is also giving me the same length
the problem now is that; on the line
"return System.Drawing.Image.FromStream(stream);"
it is causing
"An unhandled exception of type 'System.ArgumentException' occurred in system.drawing.dll
Additional information: Invalid parameter used."
Please help me out
thanks
|
|
|
|
|
Is there anyway of having a dataset that is linked to my access database in such a way that when the database changes the dataset automatically updates itself?
|
|
|
|
|
The idea of ADO.net is to work on databases without an active connection so i wouldn't have thought so. You could get the program to create the connection every X Minutes / Hours and update the dataset accordingly.
Kev
|
|
|
|
|
Hi guys,
yeah here i am having one standard (0,0) co-ordinate at top ,left of the page and in that page my image is rotated any where.
so i want to find out rotation angle and translation factor.I got the rotation
angle means at what rotation my image must be at (0,0) co-ordinate but i want to find out translation matrix of GDI+ of DX,DY.
now here is situation where i got stuck.
suppose i am having (3,5) point which is left,top point of my image and i want the matrix of that and after getting that matrix i want to translate it by using
matrix.Translate(,) method so after getting translate i got my image at (0,0) point and how the matrix of that represent the element?
can anybody tell me out.
thanks.
regards,
montu3377
|
|
|
|
|
IIRC, if you have a point (3, 5) that you want to appear at (0, 0), you'd simply call TranslateTransform(-3, -5, MatrixOrder.Prepend).
But I'm not sure, I don't have anything to test it right now.
Yes, even I am blogging now!
|
|
|
|
|
Hi,
yeah you are right but this is this method is same as Matrix.Transform(-3,-5,matrix.append)?
and how can i got the element of that matrix?
i just need the confirmation about that.
thanks.,
regards.,
montu3377
|
|
|
|
|
Trying to create a dynamic button as follows:
initilized
this.button2 = new System.Windows.Forms.Button();
this.button2.Location = new System.Drawing.Point(80, 128);
this.button2.Name = "button1";
this.button2.Size = new System.Drawing.Size(120, 23);
this.button2.TabIndex = 8;
this.button2.Text = "Create Appointment";
this.button2.Click += new System.EventHandler(this.button1_Click);
It compiles with no errors but is not displayed
any hellp is greatly appreciated
|
|
|
|