0

私はコードエディタ(winforms)に取り組んでおり、特定のボックスをフォームから別のボックスに呼び出すことができるかどうか疑問に思っていますか?

このコード セットのサンプル:

int line = 1 + richTextBox1.GetLineFromCharIndex(richTextBox1.GetFirstCharIndexOfCurrentLine());
int column = 1 + richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexOfCurrentLine();
label1.Text = "line: " + line.ToString() + ", column: " + column.ToString();

***上記のコードは、実際のコード エディターの右下部分のように、リッチテキスト ボックスの行と列のカウントを呼び出すタイマー内にありました。

メインフォームに表示され、別のフォームに表示されるラベルを呼び出すことができるかどうか疑問に思っていますが、それでも実行されます。

mainform のように richtextbox のコードがあり、他のフォームでは mainform に接続する label のコードが必要です。

私の質問は、ツール機能を別のフォームから別のフォームに呼び出すことは可能ですか?

あなたが本当に困っている私を助けてくれることを願っています。

4

1 に答える 1

1

そのフォーム ツールボックスへの参照がある限り、パブリック プロパティを介して変更したいものを公開し、コンテキストから設定するだけですLabelTextBox

public class ToolBox : ToolBoxBase
{
   public CustomLabel
   {
      get
      {
         return label1.Text;
      }
      set
      {
         label1.Text = value;
      }
   }
}

private ToolBox toolbox;
void ShowToolBox()
{
   InitToolBox();
   toolbox.CustomLabel = "New label";
}

質問がどのテクノロジーを指しているのかさえわからないので、アイデアを得るために貧弱な疑似例を追加しました。このメソッドは、ツールボックスを初期化して表示し、それへの参照でInitToolBoxフィールドを設定します。toolbox

他のフォームが別のスレッドで実行される場合は、ラベル セッターを非同期的に呼び出す必要があります。詳細な手順については、この質問を参照してください。

于 2013-05-09T02:35:00.277 に答える