2016-08-10 4 views
0

私が作成したエディタボタンをクリックしたりイベントのクリックを使用したりします。ボタンのスクリーンショットは、私が作るimage buttonイベントを設定する方法エディタボタンをクリックすると、クリックします

コードでノーハンドラ(イベント)ので、マイナスは何も起こりませんクリックしたときに、この

よう
RepositoryItemComboBox repositoryItemComboBox1 = new RepositoryItemComboBox();   
    EditorButton lp = new EditorButton(); 

    private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) 
    { 
     repositoryItemComboBox1.Items.Clear();   
      GridView view = sender as GridView;   

      for (int i = 0; i < gridView1.RowCount; i++) 
      { 

       if (gridView1.GetDataRow(i) == null) 
       { 
        break; 
       } 

       string code = gridView1.GetDataRow(i)["code"].ToString(); 

       if (!repositoryItemComboBox1.Items.Contains(code)) 
       { 

        repositoryItemComboBox1.Items.Add(code); 
       } 

      } 



     if (e.Column.FieldName == "code" && view.IsFilterRow(e.RowHandle)) 
      { 

      repositoryItemComboBox1.Buttons.Add(lp); 
      repositoryItemComboBox1.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Plus; 
      repositoryItemComboBox1.Buttons[1].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Minus; 

      e.RepositoryItem = repositoryItemComboBox1; 

      }    

です。 マイナスボタンをクリックするとグリッドビューフィルタがクリアされる FYI:devexpressを使用したiam

+0

ここで、あなたのコードでイベントを作成しますか? youtマイナスボタンが 'lp'であると仮定すると、' lp.Click + = lp_clicked'ハンドラを追加して、 'private void lp_clicked(オブジェクト送信者、EventArgs e){//ここにあなたのことを行います}'を定義してください。 –

+0

カントーコールevent.clickです。エディタボタンはツールボックスにはありません。自分で定義します。なぜなら、私が 'repositoryitemedit'を入れようとするとコントロールからボタンに変換できないからです。 –

+0

あまりにも悪いです。私はこの 'repositoryItemComboBox1.ButtonClick + = repositoryItemComboBox1_ButtonClick;のようなハンドラーを必要としています。少なくとも、私は新しいアイデアを得ました。 –

答えて

0

repositoryItemのButtonClickイベントにフックできます。この場合、どのボタンがクリックされたかがわかります。それでは、あなたはボタンこの方法を作成しましょう:repositoryItemComboBox1_ButtonClickで

private void SomeMethod() 
    { 
     var buttonPlus = new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Plus); 
     var buttonMinus = new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Minus); 
     repositoryItemComboBox1.Buttons.Add(buttonPlus); 
     repositoryItemComboBox1.Buttons.Add(buttonMinus); 
    } 

、あなたは「e」の引数にボタンのプロパティへのアクセス権を持っています。この例では、 "Kind"プロパティを使用していますが、タグなどを実際に使用できます。

private void repositoryItemComboBox1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) 
    { 
     if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Minus) 
     { 
      // do something 
     } 
     else if (e.Button.Kind == DevExpress.XtraEditors.Controls.ButtonPredefines.Plus) 
     { 
      // do something else 
     } 
    } 

これは私のやり方です。

+0

リポジトリトムボックス1_buttonclickの取得方法は?なぜなら私は 'gridView1_CustomRowCellEdit'でそれを定義して自動フィルター行に入れているからです。 –

+0

私はあなたの 'void repositoryitemcombox1_button'を貼り付けようとします。それは設定がありません –

+0

iamはツールボックスから永続リポジトリを使用していません –

関連する問題