2016-03-13 26 views
0

我有用戶控件,並將其命名爲ucMilkshake,我的主表單Form1每個人都有一組按鈕。我把ucMilkshake上的項目按鈕和Form1上的數量(1,2,3,4,5,6,7,8,9)按鈕用戶需要先點擊btnMilkshakeucMilkshake會彈出裏面的panel,那裏他們會看到物品列表後,他們選擇他們需要選擇項目數量的項目,然後它將顯示listviewForm1c#獲取用戶控件點擊的按鈕的值

但我無法獲得在用戶控制中點擊按鈕的價值希望有人在這裏可以使用if statement在我的問題幫助,因爲我有一組按鈕

繼承人我的代碼:

用戶控制

public partial class ucMilkshake : UserControl 
{ 
    int clickcount = 0; 
    private static ucMilkshake _instance; 

    public static ucMilkshake Instance 
    { 
     get 
     { 
      if (_instance == null) 
       _instance = new ucMilkshake(); 
      return _instance; 
     } 
    } 

    public ucMilkshake() 
    { 
     InitializeComponent(); 
    } 

    public string MS1 
    { 
     get 
     { 
      return button11.Text; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     clickcount - 1; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     clickcount = 2; 
    } 
}` 

Form1中

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 


    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    private void btnMilkshake_Click(object sender, EventArgs e) 
    { 
     if (!mainPanel.Controls.Contains(ucMilkshake.Instance)) 
     { 
      mainPanel.Controls.Add(ucMilkshake.Instance); 
      ucMilkshake.Instance.Dock = DockStyle.Fill; 
      ucMilkshake.Instance.BringToFront(); 
     } 
     else 
      ucMilkshake.Instance.BringToFront(); 
    } 

    private void quantityOne_Click(Object sender, EventArgs e) 
    { 
     //here i want to use if statement to get the value of clicked button in user control 

    private void quantityTwo_Click(Object sender, EventArgs e) 
    } 

回答

0

不要在您的UserControl使用一個成員變量。相反,請創建一個可在Form中訪問的公共屬性。

public partial class ucMilkshake : UserControl 
{ 
    private static ucMilkshake _instance; 

    public int ClickCount { get; private set; } 

    public static ucMilkshake Instance 
    { 
     get 
     { 
      if (_instance == null) 
       _instance = new ucMilkshake(); 
      return _instance; 
     } 
    } 

    public ucMilkshake() 
    { 
     InitializeComponent(); 
    } 

    public string MS1 
    { 
     get 
     { 
      return button11.Text; 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     ClickCount -= 1; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     ClickCount = 2; 
    } 
} 

然後在表格中點擊事件處理程序,你可以像這樣訪問值:

private void quantityOne_Click(Object sender, EventArgs e) 
{ 
    var count = ucMilkshake.Instance.ClickCount; 
} 
+0

最後一個忙你能添加如何顯示它的ListView –

+0

如果我的回答解決你的問題,請將其標記爲「已回答」。由於這個問題只是爲了「c#獲得用戶控件中點擊的按鈕的值」,所以你應該提出一個與你的「新」問題有關的單獨問題。 –

+0

我看不到輸出對不起我只是一個新手在編程仍然嘗試如何顯示你的答案列表視圖 –