在我的应用程序(winForm - 使用devexpress组件)中,我有相同的UserControl
标签(在控制加载时根据用户选择使用不同的值)。
我的问题是所有userControl
个实例都与最后一个实例具有相同的值。
为什么会这样?
视觉角色中的代码。
(当用户点击按钮创建新用户控件时)
BEGSR manageCreateNew
DCLSRPARM sender Type(*Object)
DCLSRPARM e Type(DevExpress.XtraBars.ItemClickEventArgs)
DCLFLD appCode Type(*String)
DCLFLD fileStatusParm Type(*Boolean)
DCLFLD parmCompany Type(*Char) Len(3)
DCLFLD parmProtNo Type(*Zoned) Len(5,0)
DCLFLD parmProtYear Type(*Zoned) Len(2,0)
DCLFLD TabForm1 Type(KYKLADES_Menu_Protocol.ManageProtocol)
DCLFLD TabFormSupplier Type(KYKLADES_Menu_Supplier.SupplierForm)
DCLFLD infoBoxResult Type(DialogResult)
DCLFLD IsProjectSubHeaderOpen Type(*Boolean) Inz(*True)
DCLFLD supplierCodeParm Type(*String)
DCLFLD isView Type(*Boolean)
DCLFLD isOldVsl Type(*String) Inz(" ")
Try
manageCreate = "Create" + appCode
IsProjectSubHeaderOpen = CheckIfProjectSubHeaderCOpen(IsProjectSubHeaderOpen)
if IsProjectSubHeaderOpen = *False
barbuttonItem_Save.Enabled = *True
barbuttonItem_Close.Enabled = *True
barButtonItem_New.Enabled = *False
barButtonItem_Edit.Enabled = *False
barButtonItem_Delete.Enabled = *False
appCode = %SubSt(tabControlSubCategory.SelectedTabPage.Tag.ToString().Trim(), 1, 3)
projectOption = %SubSt(tabControlSubCategory.SelectedTabPage.Tag.ToString().Trim(), 4, 3)
if projectOption = '005'
fileStatusParm = *True
selectionParm = *True
parmCompany = *Blanks
parmProtNo = *Zeros
parmProtYear = *Zeros
isView = *False
isSaved = *False
TabForm1 = *new KYKLADES_Menu_Protocol.ManageProtocol(fileStatusParm,parmCompany,parmProtNo,parmProtYear,isOldVsl,isView)
WITH TabForm1
.Dock = System.Windows.Forms.DockStyle.Fill
ENDWITH
tabPageSubCategoryHeader = *new DevExpress.XtraTab.XtraTabPage()
WITH tabPageSubCategoryHeader
.ImageIndex = FileLibrary.APPIMG //Image
.Name = projectOption + "manageCreate"
.Dock = System.Windows.Forms.DockStyle.Fill
.Size = *new System.Drawing.Size(525I, 343I)
.Text = "Create Protocol"
.Tag = "manageCreate"
.Controls.Add(TabForm1 *As Control)
ENDWITH
tagString = "Create"+appCode
endIf
这是我第一次使用VS获取您的信息。我认为当用户更改选项卡(此时)必须获得正确的用户控件实例?这是对的吗?
答案 0 :(得分:0)
我找到了解决问题的方法。
为您的信息我使用ASNA Visual RPG 14 for visual studio 2015。
问题与对象的减速和SHARED参数的使用有关。
来自ASNA简报。
术语混乱 请注意,AVR和VB使用Shared来指示变量由类拥有,而不是由类实例拥有的非共享成员。 AVR和VB都使用Static来表示变量的值在例程调用中持续存在。
由于