|
Go to your project's properties and on the Application tab there is a button labeled "View Application Events"...click it and it will open ApplicationEvents.vb. Here you can create a MyApplication_UnhandeledException method that will capture all the unhandled exceptions in your app. You need to add some kind of code to display the error, or else when you hit an exception the app will close without any notification, because you are going to be handling the exceptions yourself now. I would encourage you to include a way to get the exception's message, exception, and stack trace to help you debug your issues. You could even include information like the applications current version, which forms the user had open when the application errored, the user's OS, and publish information if you use clickonce deployment. Personally I like to prompt the user with a messagebox that asks if they want to copy detailed exception info to the clipboard, and if they say yes copy it for them.
As to your second issue, go back to the project's properties and the application tab. There is a drop down to select the Shutdown mode. You can select "When startup form closes" or "When last form closes"... If you choose "When last form closes." you need to be sure that all of your forms are actually closed...not just hidden. This is not always obvious if you aren't using global variables to create instances of your forms. Personally, I like to use the "When startup form closes" mode, and then always have that form open (although usually hidden) until I am sure the user want to exit the app.
Hope this helps.
|
|
|
|
|
Hi All
How to get date input from user? For eg. date may be 12 no need of month and year
Thank you in Advance
Bye
|
|
|
|
|
Hello,
You can try using the InputBox to get the date value from the user and then
convert it to a DateTime object. You can try the code snippet given below.
However, you would have to put some validation to check whether the required
date is valid for the month.
<br />
Dim d As Integer<br />
Dim mydate As DateTime<br />
d = InputBox("Enter the date:", "Date")<br />
mydate = d & "/" & Now.Month & "/" & Now.Year<br />
MsgBox(mydate)<br />
I hope this helps.
Regards,
Allen
Allen Smith
Software Engineer
ComponentOne LLC
www.componentone.com
|
|
|
|
|
There is no text box it is not for visual project. It is for a project to play a audio file when user presses a particular value might be two digits considered as his date in date of birth
|
|
|
|
|
Try here[^]
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
searched google did not find the solution. Please Help!
|
|
|
|
|
This code has been giving me some trouble for a while now.
When the Sub is called, the Boolean showFiles is initially passed as False.
However, the first time the Sub is called recursively, showFiles is changed to True.
<code>
Sub DisplayDirTree(ByVal dir As String, ByVal showFiles As Boolean, Optional ByVal level As Integer = 0)
' DisplayDirTree runs through the directory and lists each folder and file in order with indentation.
' showFiles is boolean and allows the caller to show folders & files, or just the folders.
' level is an optional parameter and is used only to set the begining indent.
' TODO: This is a recursive call, fix it.
'Create a string, set it as a Short Date so we just get mm/dd/yyyy
'Since it is a String and not a date, we must run .ToString
'Then we use .Replace("/", "_") so we get mm_dd_yyyy which is a valid windows filename
Dim dt As String = Date.Today.ToShortDateString.ToString.Replace("/", "_")
Dim newFilename As String = "c:\Backup\Logs\" + dt + ".txt"
Dim st1 As Stream = File.Open(newFilename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
Dim sw1 As New StreamWriter(st1)
sw1.WriteLine(New String("-"c, level * 2) & dir)
Try
If showFiles Then
For Each fname As String In Directory.GetFiles(dir)
sw1.WriteLine(New String(" "c, level * 2 + 2) & fname)
Next
End If
For Each subdir As String In Directory.GetDirectories(dir)
DisplayDirTree(subdir, showFiles, level + 1)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
sw1.WriteLine((ex.Message) & (ControlChars.CrLf))
End Try
sw1.Close()
End Sub
</code>
I am rewriting all the code in this program, but that one boolean has me stuck.
The calling code is DisplayDirTree(rootDir, False)
The only thing I can think of is that when passing showFiles, it for some reason defaults to True.
Is this natural behaviour, or am I missing something?
|
|
|
|
|
I don't see the problem where the showFiles boolean should be true at start or where it can be changing.
What you can do (not totally sure, but at least you can try)
change
Sub DisplayDirTree(ByVal dir As String, ByVal showFiles As Boolean, Optional ByVal level As Integer = 0)
to
Private Sub DisplayDirTree(ByVal dir As String, Optional ByVal showFiles As Boolean = False, Optional ByVal level As Integer = 0)
So, make it private, and make the showFiles Optional to False.
Let us know what it does.
another thing you can do is set a break on the beginning of the sub and Watch the variable showFiles, is it set the way you want it, and while you step through your code, does it got changed?
|
|
|
|
|
Hello,
As the title suggests, I've got a problem with a disappearing horizontal scrollbar on a ListBox where I'm using the DrawItem event. DrawItem is set to OwnerDrawFixed. I'm using VB.NET 2008 Express.
I think I know WHY I'm not seeing the scrollbar, but I can't figure out how to fix it. I may have to use a DataGridView, but I'd prefer to understand the solution to the ListBox problem.
What I think is happening is this line is filling my rectangle with my brush to the boundary of the rectangle:
e.Graphics.FillRectangle(myBrush, e.Bounds)
The line is filling the rectangle with my data:
e.Graphics.DrawString(Me.lstReportContent.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
I've seen that I can reduce e.Bounds.Width, and each line is cut short. Naturally, I'd have thought that if I increase e.Bounds.Width, the item line would be longer than the visible rectangle width.
|
|
|
|
|
Have you solved this?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
Hi,
How can i give the end-users the possibility to freely drag and drop windows to re-arrange to their preferred layout at run time?
Making forms and other controls dockable and floating.
Any examples are really appreciated.
Thanks in advance!
modified on Thursday, March 13, 2008 6:43 AM
|
|
|
|
|
Hi all,
I have written a code where in VB.NET that iterates a data table. If a certain condition is met in the inner loop, the inner loop must break and the control must be transfered back to the outer loop. I tried the following...
For l As Integer = 0 To deleteditems.Count - 1<br />
Dim selectedrow As String = deleteditems.Item(l).ToString<br />
For j As Integer = 0 To tableinstance.Rows.Count - 1<br />
If tableinstance.Rows(j).Item(0).ToString() = selectedrow Then<br />
tableinstance.Rows(j).Delete()<br />
Exit For<br />
End If<br />
Next<br />
Next
The problem is that the "exit for" not only exits the inner loop , but also the outer loop... any help would be appreciated...
When you fail to plan, you are planning to fail.
|
|
|
|
|
please neglect....I was my mistake since deleteditems.Count was =1
When you fail to plan, you are planning to fail.
|
|
|
|
|
Dear,
I am trying to give you some sample. If you take one FOR and While loop it works fine.
You can test this sample.
Dim a(,) As Integer = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Dim s As String = ""
For i As Integer = 0 To a.GetUpperBound(0)
Dim j As Integer = 0
While j <= a.GetUpperBound(1)
If a(i, j) = 2 Then
Exit While
End If
s &= a(i, j) & " "
j += 1
End While
s &= vbCrLf
Next
MsgBox(s)
If it solves the problem, then confirm. We can't do anything if we use same types of loops.
Thanks and Regards,
Ashok
|
|
|
|
|
AKPatra wrote: We can't do anything if we use same types of loops.
Are you sure?? Have you checked it?
|
|
|
|
|
I have checked it with For loop using Exit For with it. But I have not checked for everything. Can you provide me any examples regading this
|
|
|
|
|
AKPatra wrote: I have checked it with For loop using Exit For with it. But I have not checked for everything. Can you provide me any examples regading this
Just put in another For loop within the first and check it out...
|
|
|
|
|
You are right. Actually I was giving incorrect conditions with the Loop.
|
|
|
|
|
Dear All,
I have developed an Windows Application in VB.Net. This application user some other DLLs for its execution. When I use it on my machine which has the DLLs it gives no problem. But when I transfer only the EXE file of the application and try to exceute there it gives exception as the DLL is not present. So, my question is how can I create the windows Exe file which will combine all the required DLLs for its use. I am not interested in creating and Installer or use Packaging Project. This application has to be designed as a simple EXE (ony one file) file which I can transfer to any machine and perform the work there. Of course the targetr machines have .Net Framework installed.
Please try to provide some solution, if possible with some code example.
Thanks in Advance.
Ashok
|
|
|
|
|
Copy all the code out of your dlls into your main project. That's your only option.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
All the DLLs are already present in the same directory.
|
|
|
|
|
I'm sorry. I guess you didn't read what I said. If you want to distribute the exe without the dlls, you need to take the code out of the dlls, put it in your main project, and build an exe where the code is all inside the exe, instead of in dlls.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Thank you for your suggestion. But this is not possible as I don't have the code with me, just the DLLs.
Is it possible now?
|
|
|
|
|
Your problem just like me, but maybe you can try use Ilmerge GUI or Xenocode2007, but if you use ILmerge GUI (surf to the internet), the other PC must have framework that same with your project.
|
|
|
|
|
Have you tried with ILmerge GUI ? The other machine has the framework, that is not a problem.
OK, I will search for this tool now.
|
|
|
|
|