2012-04-24 3 views
2

ユーザーの編集フォームのGUIを再利用するユーザー管理システムを開発しています。いくつかの機能を変更しました。ほとんどの同じ機能を維持しながら、既存のGUIを再利用する

たとえば、ユーザーの追加では、ユーザーIDは次に使用可能なIDに設定され、ユーザー名、パスワード、確認パスワード、およびグループは空白のままです。上記のフィールドの検証を実行するユーザーの追加ボタンがあり、フォームのタイトルは「ユーザーの追加」です

編集ユーザーは編集するユーザーのデータを入力するだけですDataGridViewからDataRowを取得することは問題ではありません)、同じ検証を実行しながら "Add User"ボタンにAddボタンを変更し、フォームのタイトルを "Edit User"に変更します。

このようなことは可能ですか?私はそれをより効率的にGoogleにすることができるので、このタイプの使用を呼び出すのは何ですか?

+0

私を助けることなくdownvoteをありがとう。とても有難い。 –

+0

質問はあなたの側に努力を示していません。何か試したことがありますか? Downvotedと投票に投票した。 – J0HN

+0

イベントの送信者を確認して、どのボタンをフォームに表示したかを確認しようとしていましたが、これは困難であり、多くのコードを書き直す必要がありました。私は「GUIの再利用」と「GUIの再構築」を試みて、少なくとも、どのようなヘルプがそこにあるのか、より良い用語を見つけることができるようにしました。私はそれを正しいものとは呼んでいないと確信しています。 –

答えて

4

これは絶対に可能なことであり、常に行われています。アドインのためのフォームをインスタンス化するときは、一般的にこのような何かをやる:あなたがのために2つのコンストラクタを持っています

using (AddUserForm form = new AddUserForm(user)) 
{ 
    form.ShowDialog(); 
} 

お知らせ:

using (AddUserForm form = new AddUserForm()) 
{ 
    form.ShowDialog(); 
} 

をそして、あなたはユーザーを編集する場合形。 AddUserForm(実際にはModifyUserFormまたはUserForm)を呼び出すコードでは、ユーザーがnullの場合はAdd()、nullでない場合はUpdate()を実行します。

例のコンストラクタ:次に

public AddUserForm() 
{ 
    this._user = new User(); 
} 

public AddUserForm(User user) 
{ 
    this._user = user; 
} 

保存:

private void SaveUser() 
{ 
    if (this._userId == 0) 
    { 
    MyDal.AddUser(this._user); 
    return; 
    } 

    MyDal.UpdateUser(this._user); 
} 

を私はすべてのVisual Studioずにこれをしなかったので、私はそれをコンパイルすると約束していません。 :)

+0

これは私がやったことですが、あなたがここにあるようにエレガントではありません。私は自分のコードを少し変更しますが、実際に私を助けてくれることを感謝します。 :) –

+0

喜んで助けてください。下降声があなたを気にさせてはいけません。それは時々起こる。良い質問です –