1

任意のコントロール。ただし、それらすべて (TextBox、Panel、Button、LinkLabel、TabControl など) が望ましいです。私がやりたいことは次のとおりです。

public class Something
{
   public String isBetterThan { get; set; }
   public String Author { get; set; }
}

public void button1_Click(object sender, EventArgs e)
{
   panelControl1.ClassObject = new Something()
      {
         isBetterThan = "nothing.",
         Author = "Unknown"
      };
}

したがって、上記のコードから、新しい値を割り当てる .Location プロパティと同様に機能することがわかります。この情報を保存したいので、後で簡単にこれを実行できます。

public void getClassDetailsButton_Click(object sender, EventArgs e)
{
   Something something = (Something)panelControl1.ClassObject;
   MessageBox.Show("Something is better than " + something.isBetterThan);
}
4

3 に答える 3

3

関数を追加しようとしているコントロールから継承することにより、カスタム コントロールを作成できます。このようなものが機能するはずです(例としてボタンを使用

using System;
using System.Collections.Generic;
using System.Linq; 
using System.Text;
using System.Windows.Forms; 

namespace WindowsFormsApplication1
{
    class SomethingButton : Button
    {
        public Something mySomething
        { get; set; }
    }

    public class Something
    {
        public String isBetterThan { get; set; }
        public String Author { get; set; }
    }

}

用法

somethingButton1.mySomething = new Something() { isBetterThan = "nothing", 
                                                 Author = "Unknown" 
                                               };
于 2013-08-05T23:18:28.703 に答える
2

あなたが探している答えは DefaultValue 属性だと思います。クラスで一度設定すると、オブジェクトが作成されるたびに値が割り当てられます。この属性を使用してオブジェクト データを保存することにはいくつかの落とし穴があるため、注意して回帰テストを行ってください。

http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute(v=VS.71).aspx

[DefaultValue("作者名")]

于 2013-08-05T23:26:02.927 に答える
1

コントロールの外に拡張するクラスをいつでも作成し、機能を追加したいメソッドをオーバーライドできます。

public class MyTextBox : TextBox {

public String isBetterThan { get; set;}
public String author {get; set;}

protected override void OnMouseLeave(MouseEventArgs e)        
{            
     base.OnMouseLeave(e);
     // do something
     isBetterThan = this.Text;
}    
}

次に、フォームにコントロールを追加します。通常の TextBlock のように扱うことができますが、isBetterThan と Author を要求することもできます。

于 2013-08-07T13:10:56.027 に答える