0

Label フィールドを持つクラスがあります。今、そのラベルからそのクラスの参照を取得したいと思います。どうやってやるの?これが私が持っているものです。

public class Abc
{
    Label l;
}
public partial class Form1 : Form
{
    private void btnins_Click(object sender, EventArgs e)
    {
       Abc ob=new Abc();
       ob.l=new new Label();
       l.Text="Right Click Me";
       l.ContextMenuStrip = cntxtdelmnu;
    }


    private void cntxtdelnode_Click(object sender, EventArgs e)
    {
       Label lbl= (Label)cntxtdelmnu.SourceControl;

       //Here I have to get the reference of ob using lbl.
    }
}
4

1 に答える 1

1

基本的に、できません。そのラベルへの参照を持つ複数のオブジェクトが存在する場合もあれば、まったく存在しない場合もあります。「後方」参照を取得することはできません。Tagプロパティに参照を保存する可能性があります。

Abc ob=new Abc();
ob.l= new Label();
ob.l.Text="Right Click Me";
ob.l.ContextMenuStrip = cntxtdelmnu;
ob.l.Tag = ob;

または、オブジェクト初期化子を使用します:

Abc ob = new Abc();
ob.l = new Label { Text = "Right Click Me", ContextMenuStrip = cntxtdelmnu, Tag = ob };

私はそれを必要としないようにしようと思います。なぜそれが必要なのかという質問からは明らかではありませんが、より良いアプローチがあるかもしれません。(それらもあなたの本名でないことを願っています...)

于 2012-12-22T19:57:23.403 に答える