Когда Вы - единственный парень, работающий над проектом/проблемой, коммуникация должна быть хорошей, таким образом, формальности не действительно необходимы для этого. Однако, как упомянуто в других сообщениях, хорошие методы, такие как управление версиями все еще применяются. Возвращаемые идеи прочь кого-то оказались очень важными для меня также.
, Хотя коммуникация не является проблемой при работе один, я нашел полезным в некоторых случаях использовать post-it's и сделать персональную плату толпы. Я просто недавно переместился из компании, которая была ориентирована командой на тот, который является отнюдь нет, и это - трудный переход.
Просто другая мысль вроде того, как прийти к решению... книга , Концептуальное Разрушение имеет некоторые хорошие наблюдения относительно того, как к лучшей проблеме решают.
Существуют причины (например, обходные пути и т. Д.), Которые заставляют использовать модальное диалоговое окно. Вы можете эмулировать событие Deactivate
, переопределив метод формы WndProc
следующим образом:
protected override void WndProc(ref Message m) {
const UInt32 WM_NCACTIVATE = 0x0086;
if (m.Msg == WM_NCACTIVATE && m.WParam.ToInt32() == 0) {
handleDeactivate();
} else {
base.WndProc(ref m);
}
}
Сообщение WM_NCACTIVATE
отправляется, чтобы сообщить форме, чтобы указать, активна ли она (WParam == 1
) или неактивен (WParam == 0
). Если вы щелкнете где-нибудь на родительской форме, ваш модальный диалог начнет «мигать с активностью», сообщая вам, что это сейчас более важно. Это достигается путем отправки ранее упомянутых Сообщений несколько раз (деактивировать -> активировать -> деактивировать -> ... -> активировать).
Но будьте осторожны, если метод handleDeactivate()
не завершает вашу форму, он будет вызываться каждый раз, когда приходят сообщения деактивации. Вы должны справиться с этим сами.
Ссылки:
Форум MSDN
Документация MSDN
Используйте .Show () вместо .ShowDialog ().
Ручка Деактивировать событие в дочерней форме.
private void frmAdvancedSearch_Deactivate(object sender, EventArgs e)
{
this.Close();
}
Это закроет дочернюю форму, когда пользователь нажимает вне дочернего элемента.
Если вы используете .ShowDialog () для выполнения каких-либо действий после того, как дочерний элемент закрыт, используйте .show () и переопределите событие 'formclosing' дочернего элемента в родительском элементе. Так что это ударит, когда детская форма закроется, и сделайте там свои вещи.
advancedSearch.FormClosing += AdvancedSearch_FormClosing;
advancedSearch.ShowDialog();
private void AdvancedSearch_FormClosing(object sender, FormClosingEventArgs e)
{
var advanceSearch = sender as frmAdvancedSearch;
if (advanceSearch.SelectedItem != null)
{
myColumnComboBox.Text = advanceSearch.SelectedItem.Name;
}
}
Надеюсь, это поможет.