iT邦幫忙

0

visual studio c# 自學新手 如何將一個button的值傳送給另一個button?

假設我在button1內寫出string s = String.Join(", ", num);
之後我要button2接收s值應該怎麼撰寫?謝謝

HiddenField
0
小魚
iT邦大師 1 級 ‧ 2021-04-15 07:36:09

可以使用全域變數?
不過這需求很奇怪不大懂...

1
japhenchen
iT邦大師 1 級 ‧ 2021-04-15 08:09:50

弄個全域變數就好了,何苦在這個問題糾結

如果真的非這樣玩不可,你可以用tag裝資料,tag是object型態,隨你處置

private button1.click(...){
       button2.Tag = String.Join(", ", num);
}

private button2.click(.....){
    MessageBox.Show((string)((Button)sender.Tag));
}

如果你說的是網頁前端,可以用jQuery的data()

$( "#button2" ).data( "foo", 52 );
$( "#button2" ).data( "bar", { isManual: true } );
$( "#button2" ).data( { baz: [ 1, 2, 3 ] } );

console.log($( "#button2" ).data( "foo" )); // 52
console.log($( "#button2" ).data()); // { foo: 52, bar: { isManual: true }, baz: [ 1, 2, 3 ] }

至於code-behind....則用

Button2.ToolTip = String.Join(", ", num);
// 找個地方放而已
0

菩薩慈悲:今天正好有此需求,真是感應道交,不可思議。末學之做法是:

using System.Windows.Forms;

class TableDocOps{
    ……
        private string getDocFullname()
        {
            TextBox textBox1 =(TextBox)Application.OpenForms[0].Controls["textBox1"];
            if (textBox1.Text.IndexOf("字源圖片") > 1)
            {
                return textBox1.Text.Replace(@"file:///","").Replace("%20", " ");
            }
            else
            {
                MessageBox.Show("請在textBox1文字方塊輸入「字源圖片」的全檔名"); return "";
            }
        }

便可在TableDocOps類別中調用到Form1類別實例化(instantiation)的值
詳:
https://github.com/oscarsun72/PPTtoDoc_PowerPoint_xchg_Word/blob/main/Doc_PPt/Doc_PPt/TableDocOps.cs

程式碼已改良、優化、組織,上述方法函式已移至 DocOps 類別中
詳:
https://github.com/oscarsun72/PPTtoDoc_PowerPoint_xchg_Word/blob/main/Doc_PPt/Doc_PPt/DocOps.cs

internal static string getDocFullname()
{
    TextBox textBox1 = (TextBox)Application.OpenForms[0].Controls["textBox1"];
    if (textBox1.Text.IndexOf("字源圖片") > 1)
    {
        return textBox1.Text.Replace(@"file:///", "").Replace("%20", " ");
    }
    else
    {
        MessageBox.Show("請在textBox1文字方塊輸入「字源圖片」的全檔名"); return "";
    }
}

感恩感恩 南無阿彌陀佛

0
君莫笑
iT邦新手 5 級 ‧ 2021-04-20 10:17:36

如果你是寫Windows Form可能就是宣告一個全域變數即可
有要跳視窗傳值可以參考這一篇
https://coolmandiary.blogspot.com/2016/08/cwindowsformx.html

或者用委派也可以
https://coolmandiary.blogspot.com/2017/11/vbnetdelegate.html

如果寫webform則用個ViewState來存(建議包寫成Property)或者一次性傳遞的session
https://coolmandiary.blogspot.com/2017/05/visualstudioctrlre.html
前端aspx要去access時候用個<%....%>就能存取的到後端變數
https://coolmandiary.blogspot.com/2020/10/aspnet-5.html

如果是寫MVC
可以用session 或者ViewData,ViewBag,TempData
https://coolmandiary.blogspot.com/2020/11/aspnet-mvcviewdataviewbagsessiontempdata.html

我要發表回答

立即登入回答