Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10928
∙ повысить рейтинг »
Micren
Статус: Профессор
Рейтинг: 1763
∙ повысить рейтинг »
Александр Чекменёв
Статус: Профессор
Рейтинг: 1299
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:235
Дата выхода:13.08.2012, 13:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:69 / 28
Вопросов / ответов:3 / 5

Консультация # 132389: Доброго всем время суток. Пишу прогу на C# для работы с БД. У стандартного грида ести свойство у ячейки которое отображает комбобокс, как можно сделать что бы был не комбобокс, а кнопка по нажатию на которой можно было бы обработать событие вызова вормы (например как в делфовском гриде). Если у стандартного так сделать нельзя, то подскажите мо...


Консультация # 85651: Здравствуйте. Будьте добры, подскажите. Как можно на С# передавать переменную из одной формы в другую? А именно, имеется форма Glav на ней пользователь вводит координату х, у (они записываются в соответствующие переменные – х, у). Требуется передать эти координаты в форму по-имени Form2 для дальнейшего их использования. .
Консультация # 167181: Здравствуйте. В приложении на VB имеется форма, которая содержит главное меню с вложенными подменю и является родительской к другим формам. В одной из дочерних форм при закрытии необходимо скрыть один из пунктов подменю в родительской форме. Чтобы достучаться до него пришлось написать обработчик события закрытия формы так:
...

Консультация # 132389:

Доброго всем время суток.
Пишу прогу на C# для работы с БД. У стандартного грида ести свойство у ячейки которое отображает комбобокс, как можно сделать что бы был не комбобокс, а кнопка по нажатию на которой можно было бы обработать событие вызова вормы (например как в делфовском гриде). Если у стандартного так сделать нельзя, то подскажите могет гдето есть компоненты.
Всем ОГРОМНОЕ пасиба.

Дата отправки: 16.04.2008, 12:35
Вопрос задал: Ton
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Mitya86:

Здравствуйте, Ton!

А какая версия .NET используется? Если 2.0 и выше, то тогда, в дизайнере, выделив грид, в панеле Properties зайти в диалог Columns и там, добавляя колонку, выбрать тип: DataGridViewButtonColumn. Добавиться колонка, содержимое которой будет кнопка.
Для обработки события нажатия на кнопку я ничего лучше не придумал, чем обрабатывать событие CellClick всего датагрида, там передается структура DataGridViewCellEventArgs, которая содержит индекс ячейки, в которой случилось нажатие.
Если интересуют подробности - милости прошу в MSDN!

Удачи!

Консультировал: Mitya86
Дата отправки: 16.04.2008, 13:30
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 85651:

Здравствуйте.
Будьте добры, подскажите. Как можно на С# передавать переменную из одной формы в другую?
А именно, имеется форма Glav на ней пользователь вводит координату х, у (они записываются в соответствующие переменные – х, у). Требуется передать эти координаты в форму по-имени Form2 для дальнейшего их использования.

Дата отправки: 06.05.2007, 02:43
Вопрос задал: Vckaif
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Grigory:

Здравствуйте, Vckaif!
Есть несколько способов: если вы пишете веб-приложение, то самый простой способ - использование QueryString, то есть передать параметры вместе с URL в виде http://localhost/webapp/index.aspx?x=a&y=b, а потом вытащить эти параметры с помощью:
string x = Request.QueryString("x");
string y = Request.QueryString("y");
Также, если по каким-то причинам Вы не можете или не хотите использовать вышеописанный способ, можно положить значения этих переменных в объект Session:
Session("X")=x;
Session("Y")=y;
А потом в Вашей форме Form2 присваиваете значения Session("X") и Session("Y") соответствующим переменным.

Это два самых распространенных метода передачи значений переменных между разными формами.

Консультировал: Grigory
Дата отправки: 06.05.2007, 03:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Necrostaz:

Здравствуйте, Vckaif! Если вы пишете Windows.Forms приложение,то самым простым способом передачи параметров является вызов диалога. Т.е. форму ввода параметров надо вызывать в диалоговом режиме, а после получения определенного DialogResult считать параметры. Например у вас есть форма Form1, в которой задаются параметры и определяются в виде паблик свойств, в ней кнопочка OK на нажатие которой свойству DialogResult присваиваем DialogResult.OK

Тогда код по считыванию параметров из другой формы будет выглядеть примерно так:

using(Form1 form = new Form1())
{
if(form.ShowDialog() == DialogResult.OK)
{
//считываем параметры
this.Param1 = form.Param1;
this.Param2 = form.Param2;
}

}

Консультировал: Necrostaz
Дата отправки: 07.05.2007, 13:02
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 167181:

Здравствуйте. В приложении на VB имеется форма, которая содержит главное меню с вложенными подменю и является родительской к другим формам. В одной из дочерних форм при закрытии необходимо скрыть один из пунктов подменю в родительской форме. Чтобы достучаться до него пришлось написать обработчик события закрытия формы так:

Код :
  
 Private Sub NewActForm_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

        Dim itm, itm2, itm3 As ToolStripMenuItem
        For Each itm In Me.ParentForm.MainMenuStrip.Items
            If itm.Name = "ДействияToolStripMenuItem" Then
                For Each itm2 In itm.DropDownItems
                    If itm2.Name = "АктыToolStripMenuItem" Then
                        For Each itm3 In itm2.DropDownItems
                            If itm3.Name = "ДействияСНовымАктомToolStripMenuItem" Then
                                itm3.Visible = False
                            End If
                        Next
                    End If
                Next
            End If
        Next

    End Sub


код отрабатывает нормально, но он мне не нравится. Всвязи с этим вопрос: как правильно "достучаться" из дочерней формы до itm3 в родительской форме без открытия всех этих переборов итемов менюх и подменюх?
Заранее, спасибо.

Дата отправки: 13.05.2009, 14:32
Вопрос задал: Loststranger (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Hankir:

Здравствуйте, Loststranger!
При создании (вызове) дочерней формы передавай ссылку на itm3.

Консультировал: Hankir
Дата отправки: 13.05.2009, 16:11

4
В принципе можно, но от этого варианта я отказался в силу необходимости отслеживать в коде такие ссылки, которые могут в итоге быть массовыми. Спасибо.
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Evgenijm (10-й класс):

Здравствуйте, Loststranger!

Вот варианты:

1) То безобразие, которое Вам не нравится, можно укоротить так:
ToolStripDropDownItem TS = (ToolStripDropDownItem)this.ParentForm.MainMenuStrip.Items["ДействияToolStripMenuItem"];
TS = (ToolStripDropDownItem)TS.DropDown.Items["АктыToolStripMenuItem"];
TS = (ToolStripDropDownItem)TS.DropDown.Items["ДействияСНовымАктомToolStripMenuItem"];
TS.Visible = false;

2) Самый грязный. Можно сделать поле, которое хранит ДействияСНовымАктомToolStripMenuItem, открытым и обращаться к нему напрямую. Тогда ParentForm надо привести к типу Вашей родительской формы.

3) Можно сделать открытое свойство или метод в родительской форме, который будет сам делать нужное. Вызывать его придется как в варианте 2.

4) В родительской форме создать обработчик закрытия дочерней формы. Этот вариант лучше предыдущих.
private void button1_Click_1(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.FormClosed += ChildClosed;
f2.Show();
}

private void ChildClosed(object sender, EventArgs e)
{
MessageBox.Show("Child Closed");
}

5) Перестроить меню так, чтобы пункты для дочерних окон в них же и находились. Просто создайте у дочернего окна свое меню - и оно "склеится" с родительским. Этот метод самый чистый, но может потребовать существенной переделки. Зато код будет собран там, где должен.


Выбирайте 4й или 5й вариант :)

Консультировал: Evgenijm (10-й класс)
Дата отправки: 13.05.2009, 19:14

5
Очень развёрнутый и понятный ответ. Ожидал в основном ответа в виде пункта 1, но остановился в итоге на варианте 5. Спасибо.
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное