Страница: 1 |
Страница: 1 |
Вопрос: C#
Добавлено: 07.03.10 23:26
Автор вопроса: UnDeAdZak
Сорри за очередной вопрос по C#, но я совсем ничего немогу понять.
1)Как обратиться из одной формы, к контролу другой формы.
В ощемто, я на этот вопрос хочу получить решение, только на будущее, т.к. сейчас я просто на 2-й форме создал событие вызываемое из первой формы, но вот тут-то и вся ерунда! Я пишу:
public void Open_list(int Val1, int top)
{
this.Left = 20 + Val1 * 100;
this.Top = top + 276;
}
Однако!
1) какие бы я не ставил значения this.Left и this.Top, форма остаётся на одном и том-же месте!
2) В первой форме я пишу на клик мышою по форме:
Form2 form2 = new Form2();
form2.Hide();
Однако 2-я форма не исчезает(
Подскажите плиз что я делаю не так?
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
Skywalker
ICQ: 300-70-6пятьЪ
Вопросов: 62
Ответов: 545
Web-сайт:
Профиль | | #1
Добавлено: 07.03.10 23:52
как-то все мутно, попробуй переформулировать вопрос, я что-то ничего не понял))
Номер ответа: 2
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #2
Добавлено: 08.03.10 10:07
Кароче, я создал событие на форме2, которое вызывается из формы1, показывает форму2 ,и устанавливает её в нужные координаты. Однако проявиться форма-то проявляется, но перелазить в другую точку не хочет, а также исчезать не хочет(
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 08.03.10 11:10
ты создал не событие, а метод.. называй вещи своими именами...
Все верно, ты должен перевести форму в режим ручного управления местоположением..
Номер ответа: 4
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #4
Добавлено: 08.03.10 14:40
EROSНаверное я не совсем точно сказал.
1)
private void button1_Click(object sender, EventArgs e)
{
/* Прячем вторую форму */
if (m_twoForm != null && !m_twoForm.IsDisposed)
m_twoForm.Hide();
}
я так и делал(
2)Так Open-List, это метод со 2-й формы!который по идее должен её передвигать!
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 08.03.10 17:39
Если бы ты все так и делал то у тебя бы все работало..
Номер ответа: 6
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #6
Добавлено: 08.03.10 20:15
О! Танцы с бубном!!!
В Form1 добавляем.
Где MySub - процедура в Form2 объявленная как public.
Номер ответа: 7
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #7
Добавлено: 08.03.10 20:15
Все как в vb6
Номер ответа: 8
Автор ответа:
UnDeAdZak
Вопросов: 80
Ответов: 476
Профиль | | #8
Добавлено: 09.03.10 07:34
EROS Так если бы работало, я бы не писал!
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 09.03.10 08:05
Чудес на свете не бывает.. у меня то работает! А это говорит о том, что ты где то накосячил.. Создай проект с 2 формами, в первую скопируй мой код и все сам увидишь..
Номер ответа: 10
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #10
Добавлено: 09.03.10 08:58
Люди, вы что? Задача-то элементарная.
Код 1 формы:
Код Form2 (Форма перемещается и скрывается):
Если что могу прислать проект, где все работает
Номер ответа: 11
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #11
Добавлено: 09.03.10 11:55
а кто говорил что задача сложная? просто у кого то руки кривые... Кроме того я предпочитаю не использовать подобные конструкции Form2 f = Application.OpenForms["Form2"] as Form2; ввиду их неоднозначности.. Форм с таким именем может быть откруты сколько угодно, равно как и ни одной.. Правильнее всего хранить ссылку на нужный объект..
Номер ответа: 12
Автор ответа:
s12
Вопросов: 24
Ответов: 363
Профиль | | #12
Добавлено: 09.03.10 20:04
Далеко не всегда и далеко не в c#. Для хранения ссылки придется создавать глобальный статический объект, что не всегда есть хорошо.
Есть такая проблема, но я придерживаюсь мысли: одна форма - одна выполняемая операция, что исключает повторное открытие формы.
Так что, это дело вкуса
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 09.03.10 23:29
я не стану с тобой тут спорить и в чем то тебя убеждать... это бесполезно...