C#一個窗體讀取另一個窗體上控件的內容


C#和VB有一個很大的區別,VB可以在窗體2直接調用窗體1的控件,但是C#卻不能,可能是出於安全考慮,但同時也給使用帶來了極大的不便。

於是查閱很多資料,加之理解,總結於下:

目的:窗體2取值窗體1控件的內容:

首先,在窗體1定義如下控件屬性:

        public FlexCell.Grid Grid  //FlexCell是一款收費控件
        {
            get
            {
                return this.gd_SPEC;//gd_SPEC是自定義控件名稱
            }
        }

在窗體1事件中,顯示窗體2

        private void 參數預覽ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SpecView svForm = new SpecView(this);
            svForm.ShowDialog();
        }

 

在窗體2中,定義窗體名稱:

        private  FormMain fm;
        public SpecView(FormMain f) //FormMain是主窗體,SpecView是副窗體
        {
            InitializeComponent();
            fm = f;
        }

然后就可以直接調用窗體1的控件屬性了,調用方式:

           string s =fm.Grid.Cell(2,2).Text;
            MessageBox.Show(s);

雖然復雜了一點,但是還是能用的,總比設置靜態變量要好用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM