2016-04-02 10 views
-1

私はいくつかの機能を持っており、チェックボックスの状態のいずれかが変更されたときにボタンを有効にすることですが、フォームのロード後には誰かが手動で行うときにのみ表示します。フォームの読み込み後にチェックボックスをオンまたはオフにした場合にのみ、ボタンを有効にする方法はありますか?

public Form1() 
    { 
     InitializeComponent(); 
     listView1.View = View.Details; 
     listView1.FullRowSelect = true; 
     listView1.Columns.Add("A Name", 180); 
     listView1.Columns.Add("B", 260); 
     listView1.Columns.Add("C", 80); 
     listView1.Columns.Add("D", 100); 
     ListPrograms(); 


     foreach(ListViewItem theItem in listView1.Items) 
     { 
      if (theItem.Checked == true) 
      { 
       theItem.ForeColor = Color.White; 


      } 
     } 

     //CreateMyListView(); 
     button1.Enabled = false; 
    } 
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e) 
    { 
     ListViewItem l = listView1.Items[e.Index]; 

     //Display message 
     if (e.NewValue == CheckState.Checked) 
     { 
      MessageBox.Show(l.Text + " was just checked."); 
      button1.Enabled = true; 

     } 


     else if (e.NewValue == CheckState.Unchecked) 
     { 
      MessageBox.Show(l.Text + " was just unchecked."); 
      button1.Enabled = true; 
     } 

    } 

答えて

0

を書きますまたはボタンのバックカラーを変更してください。

このようにします。

 button1.Enabled = true; 
     button1.BackColor = Color.Red; 
0
、その値は、あなたのForm_Load()の終わりに

bool loadingDone = false; 

trueの場合、ロードプロセスが、まだ終わっだけ何かをしている場合は、ブール値を設定しようとすることができ

、書き込み

loadingDone = true; 
あなたのチェックボックスの変更イベントで

は、

private void Form1_Load(object sender, EventArgs e) 
{ 
    button1.Enabled = false; 
} 
+0

Thnxただし作業ブロー – toorroot

0

あなたが有効に使用することができます..我々は、我々はこのフォームの負荷を追加する必要があり、その後必要なすべての機能を呼び出す必要が初期化後

if (loadingDone) { DoSomething() }