|
Um...
P/Invoke from C#? If you can do native code does LoadLibrary work?
Alex Korchemniy
|
|
|
|
|
I am using P/Invoke from the C# to interface to LoadLibrary and GetProcaddress. However I need to make the function call within a managed C++ module because C# does not handle function pointers (needed to call the function in the win32 dll).
The issue is loading the win32 dll that is not part of the .Net environment into the emulator so that my C# dll can call it....
Do you know how to do this?
|
|
|
|
|
Hello list,
I've found myself in a bit of a pickle in trying to do something that is intuitively simple. I'm relatively new to coding, esp. in C#, so I hope you don't mind a novice-level question.
Here's what I need to do:
1. I have a text file with some data, and each line in the text file is a number of type "double".
2. I would like the user to be able to click a button on the application's form, navigate to this text file and be able to read ALL available lines (numbers) into an array of doubles.
I've figured out how to put the button on the form and the use of the OpenFileDialog. I just don't seem to be doing the reading of data into the array correctly.
Your help would be greatly appreciated! Thank you.
|
|
|
|
|
You might want to check out the StreamReader class. It has a ReadLine method which should be able to help you. The Convert class would be able to help you do the conversion from string to double.
<font=arial>Weiye Chen
Life is hard, yet we are made of flesh...
|
|
|
|
|
Check out http://www.codeproject.com/cs/database/CsvReader.asp
|
|
|
|
|
Hi All,
I just findout a special button control: AquaButton for .NET for my application. I think it's really cool.
http://www.econtechvn.com/en/aquabutton_detail.htm
But anyone tried this before?
I'm going to buy it and I need your comments.
Thanks,
NicVan
|
|
|
|
|
I'd like to point out that a single button is not going to improve the user interface. You must have a well thought out UI in the first place. In addition, the basic button is very easy to implement. Personally, I'm a graphics artist, and I don't find the other button shapes at all apealing.
Alex Korchemniy
|
|
|
|
|
|
hey guys, check out my new program at:
http://www.angelfire.com/hi5/mp3alarmclock/
If you guys have any questions, or want source code, please ask me!
D
|
|
|
|
|
Why not make an article from it?
<italic>Work hard, Work effectively.
|
|
|
|
|
I have a ton of picture boxes on a form, I made it so that if you click one it opens an open file dialog box and then opens the picture into the picture box, all seems fine. How do I code so that I can click on any picture box, and call a function that does that without making one for each picture box?
|
|
|
|
|
Tie all the click events to the same event handler.
---
b { font-weight: normal; }
|
|
|
|
|
That still would be horrilbe since I would have to make all picture boxes call that event. How do I make it not have to do that?
|
|
|
|
|
No, it's not horrible. I saw that you solved it that way after all.
---
b { font-weight: normal; }
|
|
|
|
|
I thought that I would have to make a differnet sub for each picture box, not that I could just have all click statements call into a sub.
|
|
|
|
|
Yes, as it was suggested, set the Click event of every picture box to the same handler. Once in the handler, popup the File Open dialog, and cast the sender (first parameter) to a picture box and set the image.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
|
Event handlers generaly have this signature control_event(object sender, EventArgs args) . You box sender to type of your control to use, e.g. object stg = (ComboBox)sender.SelectedItem; . If you subscribe more controls events to this handler, this way you will work with *that* control which raised the event.
David
|
|
|
|
|
So where do I put that code.
private void map11_Click(object sender, System.EventArgs e)
{
object snd = (ComboBox)cmbLevel.SelectedItem;
ChangePicture(snd);
}
private void cmbLevel_SelectedIndexChanged(object sender, System.EventArgs e)
{
szLevel = cmbLevel.Text;
}
private void ChangePicture(object sender, System.EventArgs e, object snd)
{
// Display an OpenFileDialog so the user can select a Cursor.
openMap.Filter = "GIF Files|*.gif";
openMap.Title = "Select a GIF File";
openMap.Multiselect = true;
// Show the Dialog.
// If the user clicked OK in the dialog and
// a .GIF file was selected, open it.
if (openMap.ShowDialog() == DialogResult.OK)
{
if(openMap.FileName != "")
{
// Assign the images to the picture box according to the selected level.
if (szLevel != "Bottom")
{
"""PICTURE BOX""".Image = Image.FromStream(openMap.OpenFile());
}
if (szLevel != "Top")
{
"""PICTURE BOX""".BackgroundImage = Image.FromStream(openMap.OpenFile());
}
}
}
|
|
|
|
|
ExpertComing wrote:
// Assign the images to the picture box according to the selected level.
if (szLevel != "Bottom")
{
"""PICTURE BOX""".Image = Image.FromStream(openMap.OpenFile());
}
if (szLevel != "Top")
{
"""PICTURE BOX""".BackgroundImage = Image.FromStream(openMap.OpenFile());
}
Here, you would replace "PICTURE BOX".Image with
((PictureBox) sender).Image</code).<br />
<br />
[EDIT: And in your <code>map11_Click event handler you would call ChangePicture(sender, e) and remove the third parameter you added.]
I hope this helps!
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
ExpertComing wrote:
private void map11_Click(object sender, System.EventArgs e)
{
object snd = (ComboBox)cmbLevel.SelectedItem;
ChangePicture(snd);
}
Change the ChangePicture call to ChangePicture(sender, e); . BTW, what is in the combo box? You would bind every picture box to this handler, to this particular routine is called when the user clicks on *any* picture box.
ExpertComing wrote:
private void ChangePicture(object sender, System.EventArgs e, object snd)
{
// Display an OpenFileDialog so the user can select a Cursor.
Remove the third parameter in the definition so you have:
private void ChangePicture(object sender, System.EventArgs e) and see my other replies.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
The envent handler has two parameters: Object sender and EventArgs e . The first represents the object that raised the event. In this case, if you have several objects attached to the same event handler, you should use this parameter to distinguish.
Say you have 3 pictures boxes: pictureBox1 , pictureBox2 and pictureBox3 . You set the event handlers like this:
pictureBox1.Click += new EventHandler(pictureBox_Click);
pictureBox2.Click += new EventHandler(pictureBox_Click);
pictureBox3.Click += new EventHandler(pictureBox_Click); Then you only have one event handler:
private void pictureBox_Click(object sender, EventArgs e)
{
OpenFileDialog openDialog = new OpenFileDialog()
....
Image image = Image.FromFile(openDialog.FileName);
((PictureBox) sender).Image = image;
} I hope this explains it better.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|
|
I got the coding part done before you replied again lol.
But now I get this error.
No overload for method 'ChangePicture' takes '0' arguments
|
|
|
|
|
GOT IT SWEET!
Thanks for the help.
|
|
|
|
|
You're welcome! great it worked!
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
|
|
|
|