|
You're looking for the Invoke/BeginInvoke methods on System.Windows.Forms.Control . Calling Invoke or BeginInvoke on the form, will call the delegate passed as a parameter on the main thread, which is exactly what you want. This[^] might help you understand it better.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Thanks so much ! It is what i need exactly.
|
|
|
|
|
Hello all,
I want to create an application which inserts lines of text (of specified fonts) into a bitmap file, in certain locations.
I have searched the help for Font methods and bitmap methods, but came up with nothing. Any ideas anybody?
Thanks a lot,
Gal
|
|
|
|
|
A long time ago, I did a project in VB.NET (ASP.NET) that added text to some picture a person uploaded. This is probably what you need. This is the code in VB.NET
<br />
'adjust image<br />
Dim bmap As System.Drawing.Image<br />
bmap = System.Drawing.Image.FromFile("c:\test.bmp") 'you're file<br />
<br />
'add text<br />
Dim g As Graphics = Graphics.FromImage(bmap)<br />
Dim drawFont As New Font("Verdana", CSng(bmap.Width / 10), FontStyle.Regular, GraphicsUnit.Pixel)<br />
<br />
'create brush to draw text <br />
Dim drawBrush As New SolidBrush(Color.FromArgb(241, 238, 229))<br />
<br />
'position text at the bottom of the screen<br />
Dim xPos As Integer = CInt(bmap.Width / 37)<br />
Dim yPos As Integer = CInt(bmap.Height - ((bmap.Height / 6) * 2))<br />
'make rectangle for text<br />
Dim rect As New RectangleF(xPos, yPos, CSng(bmap.Width - 2 * xPos), CSng(((bmap.Height / 5) * 3)))<br />
'draw text<br />
g.DrawString("THE TEXT YOU WANT TO SHOW", drawFont, drawBrush, rect)<br />
<br />
<br />
It's not the most beautifull code, and it's in VB.NET, sorry for that. If you need the example in c# please let me know. The "save" part of the image is not included, but you just use the save method of the BitMap object. Don't forget to call the Dispose method of all the Bitmap and graphics object.
|
|
|
|
|
Great, I'll try it.
Thanks
|
|
|
|
|
gnjunge wrote:
Don't forget to call the Dispose method of all the Bitmap and graphics object.
And the Brush Object
|
|
|
|
|
May be somebody knows if such thing is exist. I mean, to compile project in c# into executable file like c++ does?
|
|
|
|
|
You do compile C# code into an executable, like C++. And just like C++ programs require the C Runtime Library, .NET-based applications like C# apps require the .NET framework runtime.
There are certain apps out there (google for .NET linker) that will link parts of the framework into your apps, thereby making your executable large (7 MB or so), but not requiring the framework.
Tech, life, family, faith: Give me a visit.
I'm currently blogging about: Homosexuality in Christianity
Judah Himango
|
|
|
|
|
|
This happens even if I tell Visual Studio not to open a solution on startup.
If I do have it open the most recent solution, that solution completely
loads first. If I tell it to open and show the Open Solution dialog, it
does that. If it is supposed to open the Start Page, that opens.
Regardless, the startup action finishes and then it locks up.
Now technically, it might not have locked up. All I know is that the
hourglass cursor never disappears. So I go to the taskbar, and force
Windows to close the program. I see no warning other than what Windows
provides. That leads me to believe Visual Studio is unaware of what is
happening. Next time I start Visual Studio, it runs fine -- but only for
that session.
Does anyone have any ideas?
--------------
Will Pittenger
|
|
|
|
|
|
Not yet. I am trying to avoid doing so. I customize the IDE heavily. I may do that. It might solve another problem where the stack overflows when I set the Location of a child I wrote from the control's parent. No, there is no code of mine overriding that property. There is no code subsribing to the control LocationChanged event.
--------------
Will Pittenger
|
|
|
|
|
Hi Will L Pittenger,
sometimes it helps to start the IDE from command line with the argument /setup.
This will reinitialize all plugins and the windows location, but no other stuff like keymapping.
Good Luck!
Niedzi
|
|
|
|
|
What was that supposed to do? It popped up a window briefly and then vanished. When I start normally, the problem is still there.
--------------
Will Pittenger
|
|
|
|
|
What it did was reset my toolbar layout without fixing anything. That toolbar layout took hours to do. I doubt that I will be able to redo it exactly. Thanks a lot.
--------------
Will Pittenger
|
|
|
|
|
Hi all, here is what I do and need;
- I create multiple controls at runtime: (myControl1, myControl2, myControl3...)
- I have only one event definition for all my controls: (myControl_Enter)
- Everything works fine but what I need is:
when the myControl_Enter event is fired, I want "only" that instance
of the control to change backcolor.
below is the part of the code needed:
<br />
private int counter = 0;<br />
<br />
public void AddNewMyControl()<br />
{<br />
counter += 1;<br />
myClass.MyControl myControl = new myClass.MyControl();<br />
myControl.Dock = System.Windows.Forms.DockStyle.Top;<br />
myControl.Location = new System.Drawing.Point(0, 0);<br />
myControl.Name = "myControl" + counter;<br />
myControl.Size = new System.Drawing.Size(536, 168);<br />
myControl.Enter += new System.EventHandler(myControl_Enter);<br />
this.Controls.Add(myControl);<br />
}<br />
<br />
private void myControl_Enter(object sender, System.EventArgs e)<br />
{<br />
<br />
}<br />
thank you in advance.
Radgar
"Imagination is more important than knowledge." - Albert Einstein
|
|
|
|
|
The sender object that is sent as one of the arguments of the event is a reference to the object throwing the event.
so you only have to cast the sender object and set the background color. Like this:
<br />
private void myControl_Enter(object sender, System.EventArgs e)<br />
{<br />
((myClass.MyControl)sender).BackColor = System.Drawing.Color.Green;<br />
<br />
}<br />
<br />
Gidon
|
|
|
|
|
Thank you Gidon. You saved me lots of time.
Radgar
"Imagination is more important than knowledge." - Albert Einstein
|
|
|
|
|
I want to know how can i obtain the login (username) of every account in the PC
|
|
|
|
|
WMI is the answer. Go through MSDN for the details.
Live Life King Size
Alomgir Miah
|
|
|
|
|
Thank you for your comment.
You made somewhere a mistake in your SQL string. Maybe you added "'" to an integer data type or vice versa.
|
|
|
|
|
what the idea of internet printing in C#
|
|
|
|
|
What do you mean? Could you rephrase that into a question?
---
b { font-weight: normal; }
|
|
|
|
|
Hi all,
Corresponding .cs file is not added when I add a Crytal Report file in Solution Explorer VS.Net2003. And therefore I am unable to use Strong-Typed report object in my C# code.
I have added the References
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Windows.Forms;
and I selected 'Show All Files' in Solution Explorer.
There is no error in compiling the project. So why the corresponding .cs file of the .rpt file is not added in my Solution Explorer?
Please help.
Arif.
|
|
|
|
|
Hello.
I have an RLE image file which i load to a buffer using a function and then decode to 8Bit BMP.
The function return Pointer to the buffer with the BMP .
1) can i use the buffer directly using the pointer - if so how?
2) the buffer i get has no BMP header i need to add one myself - is it possible (it only contains the data.
CRleImageClass myRLE = new CRleImageClass();<br />
myRLE.Load(@"E:\1.rle",2048);<br />
<br />
System.IntPtr mp ;<br />
mp = myRLE.Decode8Bit();<br />
3) Do i have to save the file as BMP before starting any manupulation on it?
i know it's a lot of questions - sorry
thanks
liq
Have a nice Day
|
|
|
|