C# .Net で Windows フォーム アプリケーションのウィザードを作成するのは初めてです。そのため、ウィザードの作成についてはまったくわかりません。複数ウィザードの作成に関するアイデアを教えてください。
よろしく、ラビ
それを行う方法はたくさんあります。ウィザードのステップごとにフォームを作成することは可能ですが、非常に厄介です。そして、ユーザーがステップを変更すると、醜い、たくさんのちらつきが発生します。各ステップを UserControl が機能するようにするには、フォームの Controls コレクションの内外でそれらを切り替えるだけです。または、ステップごとにいずれかを Visible = true にします。UC 設計は複雑になりがちですが、UI 項目ごとにパブリック プロパティを追加する必要があります。
簡単で RAD の方法は、TabControl を使用することです。設計時にタブを切り替え、各タブにコントロールをドロップできるため、デザイナーで非常にうまく機能します。ステップの切り替えは簡単です。SelectedIndex プロパティを変更するだけです。重要なのは、実行時にタブを非表示にすることだけです。Windows メッセージを処理することで、まだ簡単に実行できます。フォームに新しいクラスを追加し、以下に示すコードを貼り付けます。コンパイル。ツールボックスの上部から新しいコントロールをフォームにドロップします。
using System;
using System.Windows.Forms;
class WizardPages : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}
class WizardPages : TabControl
{
protected override void WndProc(ref Message m)
{
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
protected override void OnKeyDown(KeyEventArgs ke)
{
// Block Ctrl+Tab and Ctrl+Shift+Tab hotkeys
if (ke.Control && ke.KeyCode == Keys.Tab)
return;
base.OnKeyDown(ke);
}
}
自分の好みに合わせて自分で作成する必要があります。「frmWizard」のような名前の基本フォームを作成すると、すべてのウィザード ウィンドウがそれを継承します。共通オブジェクトまたはウィザード オブジェクトを基本クラスに配置し、必要に応じて派生クラスでそれらを変更またはオーバーライドする必要があります。