|
I need someone to help me figure out what I am doing wrong in the following code. It is supposed to multiply the number of items ordered times the price (3 pizza slices, 4 french fries and 5 sodas). The program is then supposed to total the price of all the items up in a listbox. I also need to know where to insert the additional coding required.
Private Sub btnComputeCost_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnComputeCost.Click
Dim num As Integer
Dim duration = "", item = ""
Dim cost As Double
Dim fmtStr As String = "{0, -29}{1,-7:C}{2,-20}"
ListBox1.Items.Clear()
num = CInt(mtxtItemNum.Text)
num = mtxtItem2Num.Text
num = mtxtItem3Num.Text
Select Case num
Case 1
item = "Pizza slices"
cost = 1.75
Case 2
item = "Fries"
cost = 2
Case 3
item = "Soft drinks"
cost = 1.25
Case Else
item = ""
MessageBox.Show("Not a valid item.")
End Select
If (item <> "") Then
ListBox1.Items.Clear()
ListBox1.Items.Add("Receipt from Restaurant")
ListBox1.Items.Add("")
ListBox1.Items.Add(String.Format(fmtStr, item, cost, duration))
ListBox1.Items.Add(String.Format(fmtStr, "Processing Fee", 5, ""))
ListBox1.Items.Add("")
ListBox1.Items.Add(String.Format(fmtStr, "Total", cost + 5, ""))
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
|
|
|
|
|
Where do I start! The point of homework is to learn not to get others to do it for you. The code you have written so far won't even compile.
Scamperdoodle wrote: Dim duration = "", item = ""
Should say
Dim duration As String = String.Empty
Dim item As String = String.Empty
Scamperdoodle wrote: num = CInt(mtxtItemNum.Text)
num = mtxtItem2Num.Text
num = mtxtItem3Num.Text
You are picking up each value and overwriting what you had before. Should go into three variables not one.
Why output to a list box when a Label or a textbox would be more appropriate?
Handling click events on labels makes no sense.
So, start from the beginning and think logically. Gather the input, do the maths and then create the output. It's not that difficult.
If you have knowledge, let others light their candles at it.
Margaret Fuller (1810 - 1850)
www.JacksonSoft.co.uk
|
|
|
|
|
I'd fail you purely on bad naming convension of labels, textboxes and variables.
Steve Jowett
-------------------------
Real programmers don't comment their code. If it was hard to write, it should be hard to read.
|
|
|
|
|
I am trying to convert this C# code to vb and am having some trouble, it is from a WCF project located here http://www.codeproject.com/KB/webservices/wcftransfer.aspx?msg=3269789
I did try a online C# to VB translator but what it spit out as code the VS IDE didn't like
Here is the piece of code:
ThreadStart start = delegate
{
form = new TProgress(null, port);
form.sport = sport;
form.Show();
form.GetThread = new Thread(new ParameterizedThreadStart(form.GetInvoke));
form.GetThread.Start(transfer);
};
HelpClass.Form.BeginInvoke(start);
this is as far as I have gotten
'Dim start As New ThreadStart(AddressOf ) <--Not sure what this delegate is, AddressOf "what"?
Dim form As New TProgress(DBNull.Value, port)
form.sport = sport
form.Show()
form.GetThread = New Thread(New ParameterizedThreadStart(AddressOf form.GetInvoke))
form.GetThread.Start(Transfer)
'HelpClass.Form.BeginInvoke(start)
Thanks in advance...
Worked on my Machine!
|
|
|
|
|
Easy, put your VB code in a seperate method than create the ThreadStart using that method.
Private Sub SomeMethodName()
Dim form As New TProgress(DBNull.Value, port)
form.sport = sport
form.Show()
form.GetThread = New Thread(New ParameterizedThreadStart(AddressOf form.GetInvoke))
form.GetThread.Start(Transfer)
End Sub
And for the line you couldn't convert:
Dim start As New ThreadStart(AddressOf SomeMethodName)
Now, I'm not saying this code is going to work. Also, if this is doing what I think it's doing, it's a REALLY bad idea to create and show a form from a thread that is not the UI thread (the one your app started on).
|
|
|
|
|
Thanks Dave, I believe I understand now...Right now I just want to get the project converted to VB so I can try and understand how it works in VB...yes starting another thread to create and show a form does look like a REALLY bad idea, now that you mention it.
thanks again for the help
Worked on my Machine!
|
|
|
|
|
Private Sub test()
Dim start As ThreadStart = Function() AnonymousMethod1()
HelpClass.Form.BeginInvoke(start)
End Sub
Private Function AnonymousMethod1() As Object
form = New TProgress(Nothing, port)
form.sport = sport
form.Show()
form.GetThread = New Thread(New ParameterizedThreadStart(AddressOf form.GetInvoke))
form.GetThread.Start(transfer)
Return Nothing
End Function
David Anton
Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
|
|
|
|
|
|
Hi,
I have a small FTP class, written in VB.NET 2.0, which keeps polling for a particular file at a remote location, at 2 minute intervals, till it successfully downloads the file, and then it stops.
So far I had been using wget as an external process, and recently I have switched to using the FtpWebRequest class.
Now what i have noticed is that the first attempt always fails, even if the particular file is available on the remote server. The error returned is System.Net.WebException .
However, in the next run, after 2 minutes, the process succeeds, with exactly the same parameters.
The relevant part of the code:
Dim myFtpWebRequest As FtpWebRequest
Dim myFtpWebResponse As FtpWebResponse
Dim myStreamWriter As StreamWriter
Dim strURL As String = ""
strURL = "ftp://" & strFTPURL & strFTPFolder & strFileName
myFtpWebRequest = DirectCast(WebRequest.Create(strURL), FtpWebRequest)
myFtpWebRequest.KeepAlive = False
myFtpWebRequest.Timeout = 20000
myFtpWebRequest.UsePassive = blnUsePassive
myFtpWebRequest.UseBinary = True
myFtpWebRequest.Credentials = New NetworkCredential(strFTPUserName, strFTPPassword)
myFtpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile
myFtpWebResponse = myFtpWebRequest.GetResponse()
Can someone throw some light on this?
Regards
RB
|
|
|
|
|
What is the error message IN the WebException?
|
|
|
|
|
The error thrown is "The operation has timed out"
Thanks/RB
|
|
|
|
|
First, do NOT send emails directly to a person. They will get back to your question when they can, NOT when you damand it. Sending me an a direct email to answer your question is extremely rude.
|
|
|
|
|
Relax, mate....I don't think there is an need to get hyper about it.
You have been most helpful in the past. My thinking is that posts that do not see much activity for more than a couple of days seldom get far, I thought it better to jog you into a response.
I am sorry if you take offense at such things.
RB
|
|
|
|
|
I have a datagridview with a button column as one of its column collection. The width of the button column is say 50 but the problem is the button editing control within the cell of that column is also having the same width as its parent column which looks awkward. I want to set the width of the button editing control small enough say 20 irrespective of its parent column width. Please help. Thanks.
|
|
|
|
|
As far as I can find, you'd have to create your own Column and Cell classes to implement this. Creating custom columns is WAY beyond the capacity of a forum post. I'd started by doing a bunch of research on creating custom DataGridView columns. Warning! This is NOT beginner level stuff...
|
|
|
|
|
It's not as simple as it sounds to get control of any window in VB .net.
I googled "getting text from a window" and got good results, but it only works for notepad. It doesn't work for media player.
I want the general control of window. for example what should i do if I want to control Windows Media Player (not the activeX within VB, i am talking about independent windows media player (9 or above) provided by Microsoft) like when i press a button on VB .net form it changes the song in WMP.
So I am calling it the general control. Can anyone tell me all possible controls that VB .net can do with other applications.
|
|
|
|
|
I am not entirely sure what it is that you want to do, but it sounds like you want to write a program with which you can control any other possible program. If that is the case, I seriously doubt it can be done in any sensible way, that is easier than just opening the program in question and pressing its own buttons instead.
The only thing that I can think of that comes even close to this: http://freelabs.info/MacroRecorder.aspx[^]
My advice is free, and you may get what you paid for.
|
|
|
|
|
I'd advise you to start look into hooking WMP.
|
|
|
|
|
Controls can be child windows of other controls, many levels deep. You have a couple of problems. First, it appears that you're only checking top level controls in a form and not the child controls that may be in them.
Also, if the technique you're using refers to WM_GETTEXT, the problem you may run into is that there is nothing that says a control must respond to that message. So, you may not get anything back.
Lastly, this method will not work at all with WPF applications.
Controlling other applications is exceedingly difficult and rarely ever ends up using "production quality" code.
|
|
|
|
|
Hello Experts,
I am designing columns in datagridview at design time and bind data at run time using dataset...But it shows in gridview my columns(designtime) and dataset column at a time. Waht to do with this?
I dont want to change column header order!!
It shows according to database column order!!
Please help!!
|
|
|
|
|
It is difficult to say, without seeing some code, but generally speaking when adding columns to a datagridview, you can determine all kinds of stuff per column, before you add it at run time. So you could look into resorting the columns at runtime after binding the data to them.
Another possibility, is to change the select clause in your query, so that the order of the columns will already be correct in the dataset.
My advice is free, and you may get what you paid for.
|
|
|
|
|
ya we can reorder it using select query command,
Thanks!!
But i have another query is grid result show desigtime columns as well as runtime columns too!!
Than how to solve this problem?
|
|
|
|
|
If I understood you correctly, it sounds like something is going wrong with the data binding. In other words, you have the columns from design time, and then when the data is bound during runtime, a new set of columns is created instead of the existing ones being used.
My advice is free, and you may get what you paid for.
|
|
|
|
|
A couple of things to check...
First, in your binding code, make sure that you set the DataGridView's AutoGenerateColumns property to False.
Next, make sure your Columns that you created are setup properly to bind to the appropriate table/column names in the dataset/datatable.
|
|
|
|
|
Check to see if there is a GenerateColumns or an AutoGenerateColumns property and set it to false. You may need to write additional code to bind the design-time columns with the columns in the dataset.
|
|
|
|