Dies ist sehr grundlegende Windows Forms Handhabung.
Ein MonthCalender
ist ein Steuerelement. Sie können nicht nur Kontrollen anzeigen. Kontrollen können nur auf einem ContainerControl
gezeigt werden. A ContainerControl
ist ein Steuerelement, das andere Steuerelemente enthalten kann und dafür sorgt, dass sie angezeigt werden.
Eines der bekanntesten ContainerControls ist die Form. Im Visual Studio verwenden wir normalerweise den Designer, um das Formular zu erstellen und Controls darauf zu setzen.
Je nachdem, ob Sie Ihren speziellen MonthCalender nur auf einem bestimmten Formular haben möchten oder ob Sie ihn auf mehreren Formularen wiederverwenden möchten, müssen Sie entscheiden, ob Sie seinen MonthCalender auf einem Formular oder einem Benutzersteuerelement ablegen möchten.
Das nette Ding über ein Benutzersteuerelement ist, dass Sie den Designer in Visual Studio verwenden können, um Ihren speziellen MonthCalender auf ein beliebiges Formular zu ziehen.
Aber am Ende müssen Sie Ihren MonthCalender irgendwo auf ein Formular setzen. Sobald Sie Ihr Formular zeigen, wird der MonthCalender angezeigt.
public class MySpecialForm : Form
{
public MySpecialForm()
{
InitializeComponent();
}
}
Die oben wird von Visual Studio-Designer erstellt, wenn Sie ein Formular zu Ihrem Projekt hinzugefügt haben: direkt im Projektmappen-Explorer auf das Projekt klicken und wählen Sie Hinzufügen - Windows Form
im Designer Sie die Auswahl Toolbox (Menü Ansicht Toolbox), wählen Sie in der Toolbox unter Common Controls
den Monatskalender und klicken Sie auf Ihr Formular, wo Ihr Monatskalender angezeigt werden soll.
Dies ist grundlegende Formgestaltung.Sobald Sie Ihre Monthcalendar hinzugefügt haben, wird der Code in InitializeComponent
erstellt:
private System.Windows.Forms.MonthCalendar monthCalendar1;
private void InitializeComponent()
{
this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();
//
// monthCalendar1
//
this.monthCalendar1.Location = new System.Drawing.Point(266, 83);
this.monthCalendar1.Name = "monthCalendar1";
this.monthCalendar1.TabIndex = 3;
Sie diese Datei nicht bearbeitet sehr oft, ist es viel einfacher, die Designer zu verwenden.
Sobald Sie Ihre Form und Sie wollen es zeigen, zum Beispiel, nachdem jemand einen Knopf auf dem Hauptformular angeklickt:
private void OnMainFormButtonClicked(object sender, ...)
{
using (var mySpecialForm = new MySpecialForm()
{
// if desired set some properties of the form before showing
mySpecialForm. ...
// show the form and wait for the result:
var dlgResult = mySpecialForm.ShowDialog(this);
// process the result
if (dlgResult == ...)
{
ProcessResult(form.GetFormResult);
}
}
Das Monthcalendar-Steuerelement sollte seine Form controlscollection hinzugefügt werden. Es kann nicht selbst angezeigt werden – Steve
Das erklärt alles. Vielen Dank ! – Toto
Es ist möglich, ein kleines Formular mit einem 'MonthCalender'-Steuerelement und einer Schaltfläche zu erstellen, um zu signalisieren, wann ein Datum eingegeben wurde. Dann einfach 'ShowDialog()' auf diesem Formular, um den Benutzer aufzufordern, ein Datum einzugeben? – JohnG