我有两种形式:
Input.vb
和Writer.vb
当Input
设置为默认表单时,我能够执行以下操作:
在Writer.vb
Input.mymessage = texter.Text
texter
是一个文本框。
由于我需要将默认表单更改为另一个表单,因此它不再起作用。 如何解决?是否有任何“设置父级”或“Dim Input as Input.Forms.all”方式让它再次运行?
已经尝试Dim Input as new Input
。
修改
我找到了使用CType(Me.ParentForm, Input).mymessage = texter.Text
的方法,但Writer.Parent = Me
对我不起作用:/
答案 0 :(得分:2)
请记住,您拥有对象 definitions (类),这些类的对象实例,以及对这些实例具有引用的变量。< / p>
人们往往会忘记这些东西也适用于表格。
当Input
被设置为默认表单时,VB.Net为您提供了表单的默认实例,以及一个特殊的全局变量,它引用了与该类相同的名称。因此,代码中的名称Writer
可能是两种不同的东西之一,具体取决于上下文:类类型,或该类类型的默认实例的特殊变量。
既然Writer
不是默认表单,您就不再使用该默认表单了。当您显示表单时,您将创建自己的实例。 Writer
形式也是如此。您有一个Input
类,但这只是您在某处创建的类实例的定义。您需要为#include <stdio.h>
void squeeze(char *s, int c);
int main(void){
char s[]="kyriacos";
squeeze(s,'c');
printf("the new kyriacos is %s",s);
}
void squeeze(char *s, int c){
int i,j;
for(i=j=0; *(s+i)!='\0';i++){//the error is here
//u need to access the value at address using * operator instead u were
//accessing only addresses
if(*(s+i)!=c){
*(s+j)=*(s+i);
j++;
}
}
*(s+j)='\0';
}
表单的此实例提供对已创建的{{1}}表单实例的引用。
您使用与任何其他.Net类处理对象引用的方式相同。
答案 1 :(得分:0)
当转到另一个表单时,我使用Public sub而不是使用“Private Sub”,它将该表单中的所有内容共享给其他任何尝试使用它的内容。