How to create a button with several commands (hangman game) in visual basic 2019 - vb.net

I want to make a hangman game in visual basic 2019. I have a button for each letter, if it's the right letter it will appear on the unknown word but if it's the worng letter I want to click in the button and the hangman body part will appear. My problem is to program which body part of him will appear.
I'm a really begginer in visual basic, so please help me with easy terms that I will understand. thank you.
my body parts are pictureboxes. the first one is the hang thing with the head. the second picture box is exactly the same plus th belly part. the third one is the same as the previous one plus onde arm, ...
I was trying to put all in the same button like
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If CABEÇA.Visible = True Then
TRONCO.Visible = True
CABEÇA.Visible = False
Else
CABEÇA.Visible = True
End If
If TRONCO.Visible = True Then
TRONCO.Visible = False
BESQ.Visible = True
Else TRONCO.Visible = True
End If
If BESQ.Visible = True Then
BESQ.Visible = False
BDIR.Visible = True
End If
If BDIR.Visible = True Then
BDIR.Visible = False
PESQ.Visible = True
End If
If PESQ.Visible = True Then
PESQ.Visible = False
PDIR.Visible = True
MessageBox.Show("you lost")
End If
End Sub
cabeça=head; tronco=belly, besq=left arm, bdir= right arm, pesq=left leg, pdir= right leg
this scheme is not possible, off course, because or it will give the head or it will pass trhough the code and give me the last image.
Is there any way of making each image appear once I click the button (first click-first image, second clicks-second one, third click-third one)
If not, I'm open to different suggestions.

Set all of your pictures to visible=false at the beginning of the program and add the following to your button event:
If cabeça.Visible = False Then
cabeça.Visible = True
ElseIf tronco.Visible = False Then
tronco.Visible = True
ElseIf besq.Visible = False Then
besq.Visible = True
ElseIf bdir.Visible = False Then
bdir.Visible = True
ElseIf pesq.Visible = False Then
pesq.Visible = True
ElseIf pdir.Visible = False Then
pdir.Visible = True
MsgBox("You lose!")
Else
MsgBox("Game Over")
End If

Related

VB PowerPoint, showing a picture when several others are clicked

I've been learning today some VBA basics to apply in powerpoint, but I have some experience in some other languages. As title says, I want a picture to be shown after I click on 3 other pictures before that. When any of this 3 pictures are clicked, they trigger a tick to be shown above that image, and I'm using those as a refer to code my macro. I have the following:
Sub Condicion()
Set Diapo14 = ActivePresentation.Slides(14)
If Diapo14.Shapes("tick1").Visible = True And _
Diapo14.Shapes("tick2").Visible = True And _
Diapo14.Shapes("tick3").Visible = True Then
Diapo14.Shapes("FlechaDer").Visible = True
End If
End Sub
I have the picture I want to show (FlechaDer) with a disappear effect as soon as the slide starts, but no matter what I do, when I test the slide, the picture is always there. Maybe I'm not applying the correct approach, hope someone can help me. I'm not even sure if this can be done in PowerPoint.
I got it working with the code below. I had to replace the "ticks" in the If cycle, and instead of them I used the pictures that once clicked popped up the ticks:
Sub Can12()
Set Diapo12 = ActivePresentation.Slides(12)
Diapo12.Shapes("Can").Visible = False
If Diapo12.Shapes("Can").Visible = False And Diapo12.Shapes("Wool").Visible = False And Diapo12.Shapes("Pencil").Visible = False Then
Diapo12.Shapes("FlechaDer").Visible = True
End If
End Sub
Sub Wool12()
Set Diapo12 = ActivePresentation.Slides(12)
Diapo12.Shapes("Wool").Visible = False
If Diapo12.Shapes("Can").Visible = False And Diapo12.Shapes("Wool").Visible = False And Diapo12.Shapes("Pencil").Visible = False Then
Diapo12.Shapes("FlechaDer").Visible = True
End If
End Sub
Sub Pencil12()
Set Diapo12 = ActivePresentation.Slides(12)
Diapo12.Shapes("Pencil").Visible = False
If Diapo12.Shapes("Can").Visible = False And Diapo12.Shapes("Wool").Visible = False And Diapo12.Shapes("Pencil").Visible = False Then
Diapo12.Shapes("FlechaDer").Visible = True
End If
End Sub
It worked fine on activating an animation (Right Arrow popping up) when all 3 items were clicked. I had to add the corresponding macro to the picture. (Can, wool and pencil)

I have an issue with my radio buttons messagebox vb.net

If RB_Male.Checked Or RB_Female.Checked = False Then
MessageBox.Show("Please select your gender")
ElseIf RB_Male.Checked = False Or RB_Female.Checked = True Then
ElseIf RB_Male.Checked = True Or RB_Female.Checked = False Then
End If
I have an issue as in, I want my error message to only pop up when both radio buttons are not selected. The code above allows the messagebox to pop up even when one of the radio buttons are selected which I don't want happening. Any help will be greatly appreciated.
To check if neither button is checked:
If Not (RB_Male.Checked AndAlso RB_Female.Checked) Then
If (NOT RB_Male.Checked) ANDALSO (NOT RB_Female.Checked) Then
MessageBox.Show("Please select your gender")
ElseIf RB_Male.Checked = False Or RB_Female.Checked = True Then
ElseIf RB_Male.Checked = True Or RB_Female.Checked = False Then
End If

Visual Basic "Do While" loop

I am coding a basic program that allows users to calculate useful data on a shape (2d and 3d) based on information such as radius length, side length, height, etc.
I would like to create a settings MENU that allows users to set how many decimal places they would like the answer to go to, so what I did was
Private Sub btnSettings_Click(sender As Object, e As EventArgs) Handles btnSettings.Click
If btnSettings.Text = "Settings" Then
btnSettings.Text = "Back"
ElseIf btnSettings.Text = "Back" Then
btnSettings.Text = "Settings"
End If
Do While btnSettings.Text = "Back"
'makes IO elements invisible
lblEnter.Visible = False
lblEnter2.Visible = False
lblData1.Visible = False
lblData2.Visible = False
lblData3.Visible = False
lblAnswer1.Visible = False
lblAnswer2.Visible = False
lblAnswer3.Visible = False
txtEnter.Visible = False
txtEnter2.Visible = False
btnClearTxt1.Visible = False
lblEnter3.Visible = False
txtEnter3.Visible = False
chkBox.Visible = False
btnCalculate.Visible = False
btnClear.Visible = False
'Makes shape selection elements invisible
picCircle.Visible = False
picSquare.Visible = False
picTriangle.Visible = False
rdoCircle.Visible = False
rdoSquare.Visible = False
rdoTriangle.Visible = False
btn3D.Visible = False
'Changes texts on necessary elements
lblSelectShape.Text = "Settings"
Loop
End Sub
As you can see, when "btnSettings" shows the text "Settings", the elements on the screen are VISIBLE to the user, however as soon as "btnSettings" changes text to "Back" (indicating the user is inside the settings menu) all the elements on the screen disappear, making room for the elements the settings menu will have. However, while debugging the program whenever I hit the settings button the program crashes.
Any help? Thanks
Use a Select Case for this:
Select Case shapeType
Case shapeType.Circle
'logic for this
'...
End Select

ActiveX List Boxes will not "Size and Move" with their parent cells

I'm new at VBA so sorry in advance if this is a silly question. I have a Worksheet with ActiveX List boxes. The worksheet also has Toggle Switches. The toggle switches are set up to Hide Rows and ActiveX boxes when not depressed and Show Rows and ActiveX boxes when depressed. I'd like to save the file with all of the Toggle switches not depressed so that the user can un-hide only the rows and boxes that they need. Everything works properly until I save the file with all rows hidden. After the save all of the boxes change locations. I've tried setting the boxes to "Move and Size with cell", "Move but don't size with cell", and "Don't more or Size with cell" in the preferences. The same thing happens with all options. Below is my toggle switch code. Is there something in there causing this to happen?
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
'This area contains the things you want to happen
'when the toggle button is not depressed
Range("101:183").EntireRow.Hidden = False
Sheet1.Range("94:144").EntireRow.Hidden = False
'This hides the listboxes since they can not move and
'size with cells
Sheet11.OLEObjects("ListBox1").Visible = True
Sheet11.OLEObjects("ListBox2").Visible = True
Sheet11.OLEObjects("ListBox3").Visible = True
Sheet11.OLEObjects("ListBox4").Visible = True
Sheet11.OLEObjects("ListBox5").Visible = True
Sheet11.OLEObjects("ListBox6").Visible = True
Sheet11.OLEObjects("ListBox7").Visible = True
Sheet11.OLEObjects("ListBox8").Visible = True
Sheet11.OLEObjects("ListBox9").Visible = True
Sheet11.OLEObjects("ListBox10").Visible = True
Sheet11.OLEObjects("ListBox11").Visible = True
Sheet11.OLEObjects("ListBox12").Visible = True
Sheet11.OLEObjects("ListBox13").Visible = True
Sheet11.OLEObjects("ListBox14").Visible = True
Sheet11.OLEObjects("ListBox15").Visible = True
Sheet11.OLEObjects("ListBox16").Visible = True
Sheet11.OLEObjects("ListBox17").Visible = True
Sheet11.OLEObjects("ListBox18").Visible = True
Else
'This area contains the things you want to happen
'when the toggle button is depressed
Range("101:183").EntireRow.Hidden = True
Sheet1.Range("94:144").EntireRow.Hidden = True
Sheet11.OLEObjects("ListBox1").Visible = False
Sheet11.OLEObjects("ListBox2").Visible = False
Sheet11.OLEObjects("ListBox3").Visible = False
Sheet11.OLEObjects("ListBox4").Visible = False
Sheet11.OLEObjects("ListBox5").Visible = False
Sheet11.OLEObjects("ListBox6").Visible = False
Sheet11.OLEObjects("ListBox7").Visible = False
Sheet11.OLEObjects("ListBox8").Visible = False
Sheet11.OLEObjects("ListBox9").Visible = False
Sheet11.OLEObjects("ListBox10").Visible = False
Sheet11.OLEObjects("ListBox11").Visible = False
Sheet11.OLEObjects("ListBox12").Visible = False
Sheet11.OLEObjects("ListBox13").Visible = False
Sheet11.OLEObjects("ListBox14").Visible = False
Sheet11.OLEObjects("ListBox15").Visible = False
Sheet11.OLEObjects("ListBox16").Visible = False
Sheet11.OLEObjects("ListBox17").Visible = False
Sheet11.OLEObjects("ListBox18").Visible = False
End If
End Sub
I know this isn't the answer to your question (I haven't even looked at it yet), but i just felt like giving you this code, this is the exact code you provided and will function the same way, just looks a tiny bit clearer (actually as it also removes the if statement it prolly even performs at like 1/1000000 of a millisecond faster also =D)
Private Sub ToggleButton1_Click()
Dim boolToggleValue As Boolean
Dim i As Integer
boolToggleValue = ToggleButton1.Value
'This area contains the things you want to happen
'when the toggle button is not depressed
Range("101:183").EntireRow.Hidden = Not boolToggleValue
Sheet1.Range("94:144").EntireRow.Hidden = Not boolToggleValue
'This hides the listboxes since they can not move and
'size with cells
With Sheet11
For i = 1 To 18
.OLEObjects("ListBox" & i).Visible = boolToggleValue
Next i
End With
End Sub

Using VBA to prevent image printing in Word .doc

I set up a resume which has an 8.5 by 11 image in the background (could set it up to be a watermark if need be). Now i would like to get it set up so that it will not print the background image automatically so that the employer doesn't have to jump through hoops. After looking online I noticed that this is probably something that must be set up using VBA and templates. Any insite or anyone willing to tackle this it would be greatly appreciated.
Pretty much i just want my Word document to not print images or watermarks with out having the person who prints it set anything up.(doesn't have to be both)
Do you really need VBA for this?
To disable printing of background colors and images in Word 2010, simply follow these steps
Click on File | Option
You will get a "Word Options" Dialog Box.
Under Display Tab, simply uncheck "Print BackGround Colors and Images"
I use the following (short) procedure as a ribbon extension for showing/hiding logo's in document headers so users can toggle before print/pdf creation.
Sub ShowHideLogoInHeader
local errorhandler (not critical)
On Local Error GoTo ErrHandler
dim shaperange
Dim myStory As ShapeRange
Set myStory = ActiveDocument.StoryRanges(wdFirstPageHeaderStory).ShapeRange
myStory.Visible = Not myStory.Visible
Exit Sub
ErrHandler:
report error (separate function) in debug
ReportError "modRibbon - ToonOfVerbergLogo"
Err.Clear
End Sub
Do not know why but this semes to work just fine.
Public WithEvents appWord As Word.Application
Private Sub Document_Open()
Set appWord = Application
' Not sure if your image is a shape or inlineshape, so...
If ThisDocument.Shapes.Count Then
' First Shape is now visible
ThisDocument.Shapes(1).Visible = msoTrue
ElseIf ThisDocument.InlineShapes.Count Then
' First inlineshpae has medium brightness
ThisDocument.InlineShapes.Item(1).PictureFormat.Brightness = 0.5
End If
End Sub
Private Sub appWord_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
Dim intResponse As Integer
intResponse = MsgBox("This document contains a background image. " & _
"Would you like to hide it before printing?", vbYesNo, _
"Hide Background Image?")
If intResponse = vbYes Then
hide_images
ElseIf intResponse = vbNo Then
show_images
End If
End Sub
Sub hide_images()
Application.DisplayStatusBar = True
With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayLeftScrollBar = False
.StyleAreaWidth = CentimetersToPoints(0)
.DisplayVerticalRuler = True
.DisplayRightRuler = False
.DisplayScreenTips = True
With .View
.ShowAnimation = True
.Draft = False
.WrapToWindow = False
.ShowPicturePlaceHolders = False
.ShowFieldCodes = False
.ShowBookmarks = False
.FieldShading = wdFieldShadingWhenSelected
.ShowTabs = False
.ShowSpaces = False
.ShowParagraphs = False
.ShowHyphens = False
.ShowHiddenText = False
.ShowAll = True
.ShowDrawings = True
.ShowObjectAnchors = False
.ShowTextBoundaries = False
.ShowHighlight = True
End With
End With
With Options
.UpdateFieldsAtPrint = False
.UpdateLinksAtPrint = False
.DefaultTray = "Druckereinstellungen verwenden"
.PrintBackground = True
.PrintProperties = False
.PrintFieldCodes = False
.PrintComments = False
.PrintHiddenText = False
.PrintDrawingObjects = False
.PrintDraft = False
.PrintReverse = False
.MapPaperSize = True
End With
With ActiveDocument
.PrintPostScriptOverText = False
.PrintFormsData = False
End With
End Sub
Sub show_images()
With Options
.UpdateFieldsAtPrint = False
.UpdateLinksAtPrint = False
.DefaultTray = "Druckereinstellungen verwenden"
.PrintBackground = True
.PrintProperties = False
.PrintFieldCodes = False
.PrintComments = False
.PrintHiddenText = False
.PrintDrawingObjects = True
.PrintDraft = False
.PrintReverse = False
.MapPaperSize = True
End With
With ActiveDocument
.PrintPostScriptOverText = False
.PrintFormsData = False
End With
End Sub
Cheers
mARTin