2017-12-04 16 views
-5

にアクセスします。 (Windowsフォームは、Visual Studio 2017年に)ファイルのProgram.csで私が書きたい:は私が...私のフォーム上のボタンを作成したフォームのボタン

Form1.button1.Text = "I am a button" 

をしかし、それは保護レベルだが原因で私はButton1をアクセスすることはできません。 どうすればこのボタンにアクセスできますか?

私はそれについて何か検索しようとしましたが、私が望むように私を助けることができるものは見つかりませんでした。 フォームのボタンです。私はProgram.csからアクセスする必要があります。それは私の質問です。 マイフォームのForm1.Designer.csコード(最初の行の一部):

private void InitializeComponent() 
    { 
     System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); 
     this.button1 = new System.Windows.Forms.Button(); 
     this.SuspendLayout(); 
     // 
     // button1 
     // 
     this.button1.Location = *blabla* 

私はあなたがコンポーネントのプライバシーを変更することができますプロパティ]ウィンドウで、ここで

+3

ボタン1の保護レベルを変更するか、(SetTextForButton1(String newText) 'のような)パブリックヘルパーメソッドを作成しますか? –

+0

ボタンのTextプロパティを共通のデータソースにバインドし、データソースを変更します。 – Fildor

+1

質問のタイトルに単に「CLOSED」と書かないでください。答えを受け入れる。 –

答えて

0

それを残しておきます。ボタンプライバシーを公開に変更する必要があります。書いたものをfildor

--edit
は、オブジェクトの修飾子を変更し、より良いaproach

+0

ありがとうございます。デザイン - >モディファイア。申し訳ありません:D –

+1

これはかなり悪い考えです。代わりにデータバインディングを使用してください! – Fildor

0

ある悪い考えです。 Form1にpublicプロパティ(例:Button1Text)を作成し、プライベートオブジェクトにアクセスする代わりに呼び出す方がよいでしょう。

public string Button1Text 
{ 
    get { return Button1.Text; } 
    set {Button1.Text = value; } 
} 

この

form1.Button1Text = "I am a button" 

のようにそれを呼び出すには、Form1がフォームではなく、クラス名の作成したインスタンスであることを確認してください!

関連する問題