1

ユーザーコントロールには、いくつかのオブジェクト(、、textboxなどcombobox)があります。フォームには、ユーザーコントロールからいくつかのオブジェクトを表示または非表示にするボタンがあります。usercontrolからメソッドを呼び出そうとしていますが、機能しません。私のコード:

ユーザーコントロール:

public void MinimMaxim()
{
    _txtName.Visible = true;
    _txtPackage.Visible = true;
    _panelButton.Visible = false;
    _txtBody.Visible = false;
    _btnPlus.Visible = false;
} 

と形式で:

//method that creates taskcontrols at every button click
private void _buttonAdd_Click(object sender, EventArgs e)
{
    TaskControl task= new TaskControl();
}
//call function from usercontrol
private void button_Click(object sender, EventArgs e)
{
    task.MinimMaxim = true;
}
4

4 に答える 4

4

ユーザーコントロールを介して次のコードを参照してメソッドを呼び出す>>

yourUserControlName.methodName();

私はあなたの場合それはかもしれないと思います:

yourUserControlName.MinimMaxim();
于 2013-03-26T06:57:33.100 に答える
3

作成するタスク変数は、_buttonAdd_Clickメソッドのローカル変数です。他の方法からはアクセスできません。他のメソッドから使​​用する場合は、メンバー変数である必要があります。

于 2013-03-26T06:57:52.000 に答える
2

ユーザーコントロールのコントロールにアクセスするには、通常、そのコントロールのいくつかのプロパティを公開し、メインページからプロパティを使用してコントロールを操作できます。

于 2013-03-26T06:58:43.240 に答える
2

私はフリーランサーの答えを試しましたが、うまくいきました。

ユーザーコントロールクラス

using System;
using System.Windows.Forms;

namespace SOF_15631067
{
    public partial class UserControl1 
        : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

    private void UserControl1_Load(object sender, EventArgs e)
    {

    }

    public void MinimMaxim()
    {
        _txtName.Visible = true;
        _txtPackage.Visible = true;
        _panelButton.Visible = false;
        _txtBody.Visible = false;
        _btnPlus.Visible = false;
    } 
}

}

フォームクラス

using System;
using System.Windows.Forms;

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

    private void button1_Click(object sender, EventArgs e)
    {
        userControl11.MinimMaxim();
    }
}

}

実行時にこのUserControlを作成すると、答えは次のようになります。

using System;
using System.Windows.Forms;

namespace SOF_15631067
{
    public partial class Form1 : Form
    {
        UserControl1 uc1 = new UserControl1();
    public Form1()
    {
        InitializeComponent();

        **Controls.Add(uc1);**
    }

    private void button1_Click(object sender, EventArgs e)
    {
        uc1.MinimMaxim();
        // userControl11.MinimMaxim();
    }
}

}

于 2013-03-26T07:47:50.943 に答える