簡體   English   中英

如何使用派生類中的值填充文本框? C#

[英]How to populate a text box with values from a derived class? C#

在我的表格中,我有以下內容...

if (productNo == this.product1.ProductNumber)  //ProductNumber comes from Product class
                {
                    //if so, set the other values of the text boxes to that of the 
                    //product in memory
                    tbDescription.Text = product1.ProductDescription; //Works - from Product class
                    tbOnHand.Text = product1.NumberOnHand.ToString(); //Works - from Product class
                    tbUnitOfMeasure.Text = product1.UnitOfMeasure;    //Works - from Product class

                    tbVendorID.Text = product1.VendorID; // Doesn't work - from derived ManufacturedProduct class 
                }

其中VendorID來自ManufacturedProduct類,該類是Product的派生類。 最后一行代碼是行不通的。 我希望能夠用product1.VendorID中的值填充tbVendorID(順便說一下,它是一個int)

我收到以下錯誤... Objects.Product'不包含'VendorID'的定義,並且找不到擴展方法'VendorID'接受類型為'Objects.Product'的第一個參數(是否缺少using指令或組裝參考?)

如果要訪問子類的屬性,則需要將其強制轉換為ManufacturedProduct

ManufacturedProduct mfgProduct = (ManufacturedProduct) product1;
if (productNo == mfgProduct.ProductNumber)  
{
    tbDescription.Text = mfgProduct.ProductDescription;  
    tbOnHand.Text = mfgProduct.NumberOnHand.ToString();  
    tbUnitOfMeasure.Text = mfgProduct.UnitOfMeasure;    
    tbVendorID.Text = mfgProduct.VendorID;  
}

您可以執行以下操作:

if (productNo == this.product1.ProductNumber)  //ProductNumber comes from Product class
{
        tbDescription.Text = product1.ProductDescription; 
        tbOnHand.Text = product1.NumberOnHand.ToString(); 
        tbUnitOfMeasure.Text = product1.UnitOfMeasure;    
        if(priduct1 is ManufacturedProduct)
               tbVendorID.Text = ((ManufacturedProduct)product1).VendorID.ToString(); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM