Кредит из-за @Blorgbeard для совместного использования его сценария. Я, конечно, отмечу его в случае, если мне нужен он.
Да, можно "щелкнуть правой кнопкой" по таблице и написать сценарий CREATE TABLE
сценарий, но:
С этим сценарием, преобразованным в хранимую процедуру и объединенным со сценарием обертки, у Вас был бы хороший автоматизированный способ вывести Ваш дизайн таблицы в управление исходным кодом и т.д.
, Остальная часть Вашего кода DB (SP, индексы FK, Триггеры и т.д.) будет являться объектом управления исходным кодом так или иначе;)
Правильный способ сделать это - в первую очередь предотвратить отображение формы. Для этого требуется переопределение SetVisibleCore (). Предположим, есть контекстное меню для NotifyIcon с командой «Показать и выйти». Вы можете реализовать его так:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
notifyIcon1.ContextMenuStrip = contextMenuStrip1;
this.showToolStripMenuItem.Click += showToolStripMenuItem_Click;
this.exitToolStripMenuItem.Click += exitToolStripMenuItem_Click;
}
private bool allowVisible; // ContextMenu's Show command used
private bool allowClose; // ContextMenu's Exit command used
protected override void SetVisibleCore(bool value) {
if (!allowVisible) {
value = false;
if (!this.IsHandleCreated) CreateHandle();
}
base.SetVisibleCore(value);
}
protected override void OnFormClosing(FormClosingEventArgs e) {
if (!allowClose) {
this.Hide();
e.Cancel = true;
}
base.OnFormClosing(e);
}
private void showToolStripMenuItem_Click(object sender, EventArgs e) {
allowVisible = true;
Show();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
allowClose = true;
Application.Exit();
}
}
Обратите внимание на морщину с событием Load, оно не сработает, пока не будет показана основная форма. Поэтому обязательно выполняйте инициализацию в конструкторе формы, а не в обработчике события Load.
В конструкторе удалите эти две строки:
this.Visible = false;
this.ShowInTaskbar = false;
и добавьте после InitializeComponent ();
:
this.WindowState = FormWindowState.Minimized;
В конструкторе установите ShowInTaskbar
до false
и FormWindowState
до Нормальный
.
РЕДАКТИРОВАТЬ: Если вы разместите то же самое в событии загрузки, окно будет свернуто, но все равно будет отображаться на рабочем столе в свернутом виде. Я думаю, что это ошибка.