我是C#的初學者。我在一個類中定義了DataGridvew「dgPins」以及名爲「pnlPins」的Panel。該應用程序使用幾個UI組合在一起設計。初始化是在類X如下從另一個類訪問同一個類的DataGridView實例
private void InitializeComponent() {
...
private System.Windows.Forms.Panel pnlPINs;
private System.Windows.Forms.DataGridView dgPins;
...
}
我使用此網格顯示一些銷從連接到以太網設備讀出的完成。一旦數據被填滿它看起來像這樣(這是一個按鈕,點擊一下鼠標),
private void mnuGeraetLesen_Click(object sender, EventArgs e)
{
...
if (EthernetAvailable == true)
{
QueryAllCodeCommandHandler();// local function which fills the grid
}
}
現在在另一個UI(類)我有一個按鈕,需要訪問同一網格 實例並執行相同的任務。所以我在這個班上做了以下的事情(比如說Y班)。
private void _btnSearchDevices_Click(object sender, EventArgs e)
{
SingleDeviceInformationControl test = new SingleDeviceInformationControl();
test.QueryAllCodeCommandHandler();
}
但據我所知,這將創建一個不同的實例,將無法正常工作。所以網格保持如下空。
我想重命名DataGridView的公共靜態這使我能夠從任何地方訪問同一個實例,但它使整個項目的不穩定。 我已經做了一些研究,發現了類似的問題,但還沒有理解我真的必須做些什麼才能達到預期的結果。我非常感謝有關此問題的可能解決方案的任何提示。非常感謝你!
既然你聲明你的DataGridView是私有的,你只能從同一個類訪問它,而不能從其他地方訪問它。因此,無論您需要將其聲明爲public,還是需要編寫setter和getter方法來訪問DataGridView(請參閱[公共,私有,受保護和沒有任何區別](https://stackoverflow.com/questions/614818)/what-is-the-difference-between-public-private-protected-and-nothing)以供參考)。通過將網格視圖聲明爲公共,我也不明白你的項目變得不穩定了嗎? – waka
對不起,我的壞。它不會改變任何東西。因爲我忘了提及(壞)那些是單獨的用戶界面 – Isuru