質問を見ていただいてありがとうございます。
当方、Visual Studio、c#は初心者です。
会社の方針により、参考書を読みながら作成しております。
Cの基本がわかる程度です。よろしくお願いいたします。
さて、早速ですが掲題の件です。
現在、既存のプログラムの修正をしていたのですが、
調べてもわからなかったので質問させていただきます。
プログラムの内容
大まかな説明になりますが(今回必要ないところは端折らせていただきます)、
Visual Studioで作成されたソフトがあります。
起動するとウィンドウが表示され、テキストボックス1と2とボタン1つが
ある画面(windowとコメントがありました。.xamalでできてます)
で、テキスト1に数値を入力してボタンを押すとテキスト2に結果が
表示されるというものです。
構成
Visual Studioのソリューションエクスプローラーでみると
TESTという大きなくくり(C#)の中に
-App.config
-app.manifest
-App.xaml
-Window.xaml
-maincode.cs(C#)
とそれぞれがあります。
部品はテキストボックス1.2とボタン1です。
Window.xamlの中には
-Window.xaml.cs
があります。
やりたいこと
maincode.csの中で、テキストボックス1に入力されている値を
使いたい時があるのでその値を取得したい。
普通に読み込めるのかと思い、maincode.csで
strint ans = textbox1.Text;
とやったところ、
「CS0103:現在のコンテキストにtextbox1という名前は存在しません。」
となりました。
質問なのですが、
上記のやりたいことはそもそも可能なのでしょうか?
勉強不足で申し訳ございませんが、ご教示の程よろしくお願い致します。
補足
結構省略していますが、必要だと思われるところを抜粋しました。
必要なことが抜けていたらすいません。
Window.xaml.csの中身
C#
1namespace TEST 2{ 3 4 public partial class MainWindow : Window 5 { 6 private readonly Maincode maincode = new Maincode(); 7 public MainWindow() 8 { 9 InitializeComponent(); 10 maincode .TextBoxAdd = text_add; 11 12 } 13 private void text_add(string text) 14 { 15 this.textbox2.Dispatcher.BeginInvoke( 16 new Action(() => { 17 textbox2.Text = text; 18 })); 19 } 20 } 21}
maincode.csの中身
C#
1namespace Maincode 2{ 3 class Maincode 4 { 5 public Action<string> TextBoxAdd;// ログ出力用 6 7 public void Start() 8 { 9 ---色々処理省略--- 10 string text = System.Text.Encoding.UTF8.GetBytes("Date"); 11 TextBoxAdd(text); 12 13 var ans = textbox1.Text; ←これはエラー 14 } 15 } 16}
のようになっていて、maincoceからは、xamlのほうに値を渡して処理ができています。
逆に吸い出すのをやりたいです。
回答4件
あなたの回答
tips
プレビュー