Arnold bin Boon Hoo Ответов: 1

Обработчик событий работает, но метод не работает


Всем доброе утро

я вызываю 2 метода из класса, который я предполагаю как класс" hiddenButton".
один из них-установить видимость кнопки
другой метод-скрыть кнопку

я уже инициализирую кнопку и скрываю ее после запуска программы

чтобы показать кнопку из hiddenButton
я должен нажать на кнопку из основной формы, и я предполагаю, что это "показать кнопку"
если я нажму на кнопку "Показать", она на самом деле скроет эту кнопку

не удаляя eventhandler, когда я нажимаю на кнопку "Показать", она должна быть show and hide my button

но моя кнопка из класса "hiddenButton" показывает и скрывает только один раз, а потом больше не работает.

Я уже пробую свой eventhandler с помощью messagebox, когда я нажимаю на кнопку "Показать", он на самом деле всплывает messagebox без каких-либо проблем

поэтому мне интересно, почему кнопка "скрытая кнопка" только один раз показывает и скрывает, а потом не работает

это потому, что моя кнопка на самом деле была установлена на том же месте, что и другой объект в форме?

Что я уже пробовал:

из основного кода
<br />
dim _hiddenButton as new hiddenButton<br />
_hiddenButton.initButton(form1) 'add button to form 1<br />
dim _otherElement as new otherElement<br />
_otherElement.initElement(from1) 'add other element to form1<br />
dim _button as button = new button<br />
with _button<br />
.text = "show button"<br />
addhandler .mouseclick, addressof bmClicked<br />
end with<br />
form1.controls.add(_button)<br />
<br />
private sub bmClicked(byval sender as object, byval e as eventargs)<br />
dim _button as button = sender<br />
<br />
with _button<br />
if .text = "Show Me" then<br />
.text = "Hide me"<br />
hiddenButton.buttonShow()<br />
else if .text = "Hide Me" then<br />
.text = "Sow Me" then<br />
hiddenButton.hideButton()<br />
end with<br />
end sub<br />


код из класса hiddenButton
<pre lang="vb">
private shared _button as button
public sub initButton(byval formName as form)
_button = new button
with _button
.text = "hello code project"
.size = new size(100, 100)
.location = new point(30,30)
.visible = false
end with
formName.controls.add(_button)
end sub

public shared sub buttonShow()
_button.visible = true
end sub

public shared sub buttonHide()
_button.visible = false
end sub


класс от otherElement
private _backgroundPanel as panel

public sub initElement(byval fromName as form)
_backgroundPanel = new panel

with _backgroundpanel
.backgroundcolor = color.black
.size = new size (screen.primaryscreen.bounds.width, screen.primaryscreen.bounds.height)
.location = new point(0,0)
end with
formName.controls.add(_background)
end sub

1 Ответов

Рейтинг:
2

Graeme_Grant

Вы должны научиться использовать отладчик, встроенный в Visual Studio. Вот такой Базовая отладка с помощью Visual Studio 2010[^] видео, которое поможет вам начать работу.

Что вы видите плохого в этой линии?

.text = "Sow Me" then


Ralf Meier

Я думаю, что с этой кодовой линией отладчик не поможет, потому что эта строка не будет компилироваться ...
Но мне пришлось посмотреть 2 раза, чтобы увидеть этот код-ошибка-очень хорошо ... +5

Graeme_Grant

VB имеет With заявление для объекта, так что эта строка является законной. :)