2011-01-10 16 views
0

FontDialog.cs Windowsフォームを作成しました。ここでユーザーはテキストの色の中から色を選択できます。私は、ユーザーがダイアログで選択した内容をキャプチャする必要があります。ここではダイアログから選択した値を取り込む方法は?

alt text

は私がダイアログを呼んでいる方法は次のとおりです。

DialogsTestingGrounds.FontDialog dialog = new FontDialog(); 
dialog.ShowDialog(); 

どのように選択した値をキャプチャすることができ、私は私が持っている想像します私がFontDialog.csフォームの最後に転送したいすべてのプロパティを作成するにはどうすればいいですか?

答えて

2

それはすなわち、dialog.Fontは、あなたがしたいと思う何を選択したフォント、色の dialog.Colorのように...

3

を取得するには、あなたが使用することができ、不要なプロパティを公開ですあなたのFontDialog上で値を利用できるようにします。その後、dialog.PropertyNameを使用してプロパティの名前で参照することができます。

1

ミッチェルの答えは働きますが、同じ行に2つのアイテムを組み込むことができます。

  • 公開されているプロパティ(Mitchelの 回答)があります。
  • あなたが質問に値 に渡すことができるように(これは古い選択が事前に入力ダイアログを持ってできるようになる) 引数としてプロパティの型を使用して フォーム上のパブリックコンストラクタを持っています。
  • のダイアログを呼び出してダイアログを確認すると、 は、ユーザ が望むときに値を変更するだけです。 (このプロセスはWPFでは異なります)
  • 気になるのが唯一のものなら、 フォントダイアログを実際に作成する必要はありません。だからあなたのダイアログクラスの内部には、この擬似コードのように見えるかもしれhttp://msdn.microsoft.com/en-us/library/system.windows.forms.fontdialog%28v=vs.71%29.aspx

ネット でフォントダイアログに建て があります。

public Font SelectedFont { get; set; } 
    public FontDialog() 
    { 
     //set your defaults here 
    } 

    public FontDialog (Font font) 
    { 
     SelectedFont = font; 
     //dont forget to set the passed in font to your ui values here 
    } 

    private void acceptButton_Click(object sender, EventArgs e) 
    { 
     SelectedFont = //How ever you create your font object; 
    } 

そしてコンストラクタで

DialogsTestingGrounds.FontDialog dialog = new FontDialog(); 
if(dialog.ShowDialog() == DialogResult.OK) 
    //Do Something 
+0

、代わりに「フォント=フォント」の「SelectedFont =フォント」(acceptButtonは上記形態AcceptButtonであると仮定)あなたの関数を呼び出します。フォームが親クラスControlからFontプロパティを継承するため、btw "Font = font"がコンパイルされます。 – odalet

+0

オーバーロードされたコンストラクタによってデフォルト値を提供することは余計です。 Sergioはプロパティを介してデフォルト値を渡すこともできますが、「前」にダイアログを表示します(たとえば、OpenFileDialogでフィルタを初期化するときのように) – odalet

+0

ありがとうございました。 –

関連する問題