Different message on the message box - visual-studio

Private Sub btnEval_Click(sender As Object, e As EventArgs) Handles btnEval.Click
If cbAbuse1.Checked Or cbAbuse2.Checked Then
If cbBullied1.Checked Or cbBullied2.Checked Then
If cbDeprsn1.Checked Or cbDeprsn2.Checked Then
If cbGrief_Loss1.Checked Or cbGrief_Loss2.Checked Then
If cbSH1.Checked Or cbSH2.Checked Then
If cbStrsd1.Checked Or cbStrsd2.Checked Then
Else
End If
End If
End If
End If
End If
End If
End Sub
So this is my code, after I click the "btnEval" button it should show a message box with a different message depending on what check box is checked.

Not sure what you are asking but if you just wanted to know how to display a message box (I am assuming you are using VB.NET here) the code is:
Messagebox.Show("This is the content of my message box", "Message box title")
Hope that helps :)

Related

Proper Casing in VB6

I am doing a quiz game in VB6. I need the textbox to automatically capialize the first letter but this code
Private Sub Anstxt_Change()
Anstxt.Text = StrConv(Anstxt.Text, vbProperCase)
End Sub
causes the word to invert. So instead of "Trees" it turns into "Seert"
How do I change this?
Pay attention to where the cursor is positioned in the textbox when the event Change occurs: its at the start of the textbox. Add a Debug.Print statement to see what's going on while you type:
Private Sub Anstxt_Change()
Debug.Print StrConv(Anstxt.Text, vbProperCase)
Anstxt.Text = StrConv(Anstxt.Text, vbProperCase)
End Sub
The output looks like
T
T
Rt
Rt
Ert
Ert
Eert
Eert
Seert
Seert
Two things to notice here: the Change event is triggered twice: once from typing and once from changing the value of the textbox within the Change event. That gives you an idea that manipulating the text of a textbox in its Change event isn't a good idea. I suggest to put this code in the LostFocus event instead.
The second thing to notice is that as the cursor is always at the start of the textbox, the letters you type are inserted there in front of the existing letters. So after you change the .Text property of the textbox, you should position the cursor at the end of the textbox with the .SelStart method:
Anstxt.SelStart = Len(Anstxt.Text)
e.g.
Private Sub Anstxt_Change()
Anstxt.Text = StrConv(Anstxt.Text, vbProperCase)
Anstxt.SelStart = Len(Anstxt.Text)
End Sub

Disabling Mouse Right Click On Image Control VB6

Ok, after searching for an hour, I still haven't found the right answer for this. All I want is to disable the right click on my button because it's creating a bug, according to our tester. I don't know if VB6 can't do this, but if VB6 can't do this, is there any possible way? Ok, just to be more specific, here is my example...
'I found this somewhere...
Private Sub cmdExportCSV_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
'Do Nothing
End If
End Sub
'Then I have here
Private Sub cmdExportCSV_Click()
'Some logic here
End Sub
But when I click the right button on my mouse, the cmdExportCSV_Click() still executing the code inside.
How about something like this then (based upon your code):
Private m_mouseButton As Integer
Private Sub cmdExportCSV_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
m_mouseButton = Button
End Sub
Private Sub cmdExportCSV_Click()
If m_mouseButton = vbRightButton Then
'Do Nothing
Exit Sub
End If
'Some logic here
End Sub
I didn't run this or anything, but it should work.
I have resolved my own problem.
From this..
Private Sub cmdExportCSV_Click()
If m_mouseButton = vbRightButton Then
'Do Nothing
Exit Sub
End If
'Some logic here
End Sub
To this..
Private Sub cmdExportCSV_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button And vbRightButton Then
Exit Sub
End If
'Some logic here
End Sub
That's it! VB6 won't directly allow you to disable the mouse right and mouse left button. My solution is just to exit event whenever the user click the mouse right button.
Anyway, I'm sorry as I found out that the system is using asImageCommand not CommandButton, so when you declare an event like this "Private Sub cmdExportCSV_Click()", the asImageCommand control will trigger when you click the mouse-right and mouse-left button. But if you are using CommandButton, it will only trigger when you click the left-button, and won't allow you to use the right-button of the mouse.
I think I have to update the title of my question.

Form1.button2.text.. is not accessible in this context because its private

What I would like to do is after clicking the button14 which is login it would change all the button in all forms text to "sample" I already change the class where the button2 is from private to public but I still get an error
Public Sub button14_Click(sender As Object, e As EventArgs) Handles button14.Click
If textBox2.Text = "sample" And textBox3.Text = "****" Then
Form1.Show()
Me.Hide()
button2.Text = ("sample")
Form1.button2.Text = ("sample")
Else
MsgBox("Sorry, Username or password not found", MsgBoxStyle.OkOnly, "Invalid")
textBox2.Text = " "
textBox3.Text = " "
End If
End Sub
this is form 1
Public Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click
Login.Show()
Me.Hide()
End Sub
Do people still write VB code? Anyway, the error message is quite clear. You need to make the button public (not just the class).
But, for security reasons, instead of making the button public...I would recommend you to expose a method to change the text of the button, after all, that's all you're doing. You can even mark this method with the Friend access modifier...I think it is the same as internal in C#?
My guess this is winform project.
You can change the access modifier of your button in the form designer. Select your button press F4 for the property grid, find Modifiers and change it to whatever.

vb2013 exit from local sub closes form

I have a local sub that allows the user to move a row of a datagridview, triggered by a button click. The sub works fine in debugger but when it exits control is transfered to the calling form, i.e. the current form is closed. This also happens when no row is moved, i.e. when one of the abort conditions on entrance are met. Simply: exiting this sub will close the form!?!
Private Sub btnMove_Click(sender As Object, e As EventArgs) Handles btnMove.Click
Dim rowToGo As DataGridViewRow
Dim rtgIndex As Integer = 0
If (dgvAuftrag.RowCount <= 1) or (dgvAuftrag.CurrentRow Is Nothing) Then
Beep()
Exit Sub
End If
rowToGo = dgvAuftrag.CurrentRow
rtgIndex = rowToGo.Index + 1
If (rtgIndex >= dgvAuftrag.RowCount) Then rtgIndex = 0
Try
dgvAuftrag.Rows.Remove(rowToGo)
dgvAuftrag.Rows.Insert(rtgIndex, rowToGo)
Catch ex As Exception
IssueErrorMessage(ex)
End Try
End Sub
All other local subs and functions work normal, just this one behaves strange. Any ideas how to fix/avoid this bug?
This is not a solution of the problem but a functioning workaround based on the sugestion of Hans. I have introduced a global boolean var named OKtoExit which is intialized to false.
private OKtoExit as boolean = false
Then I have a new FormClose event handler that checks that var. If OKtoExit is false then e.Cancel = true and the handler exits. The regular Exit functions (Save and Quit) set OKtoExit to true, any other code leaves the values unchanged.
Private Sub Current_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If Not exitOK Then
e.Cancel = True
Exit Sub
End If
End Sub
As I said, this is just a workaround that has the same effect as a normal functioning VB-Code. I would appreciate if somebody could present a real solution!
After many months I discovered the true reason for the problem and I must give all credits to Hans Passant: I had a button on one of the first forms that had the Dialog Result property set to Cancel. This was a really beautyful button so many other buttons in the appliaction were a copy of this first button where I just modified the label. Thus they all led to the unwanted behavior that a form was closed as soon as a user clicked one of them no matter what the label said... After months I discovered that just by chance. Thanks to Hans again, I obviously overlooked his last hint "And look at the button's DialogResult property."!

A Confirmation Box On Exit

I want to have hta code such that:
When the user clicks on the "Close" button, it pops up a confirmation box.
If the user confirms "Yes", then it will quit otherwise it keeps running.
Thanks in advance.
In HTML, you need a close button, it can be an input with button type (but in fact, any part of an HTML page can get a 'onclick' property, like a in a table)
<input type="button" value="Close" onclick='F_closeConfirm'>
then the VB code should contain a function F_closeConfirm with something like this
Public Function F_closeConfirm()
'one way to ask
If MsgBox("Are you sure you want to quit?", vbYesNo, "Confirmation") = vbYes Then
'another way
iAnswer = MsgBox("Like, really quit?", vbYesNo, "Confirmation")
If iAnswer = vbYes Then
'method to close parent windows or tab, can differ but it's another topic
Window.Parent.Close
End If
End If
End Function

Resources