C# 使用一个空隙更容易打开窗户
我有一个我正在尝试开发的软件启动器。现在,设置有一个“持久窗口”,这样启动器在选择一个按钮后是否保持打开状态 现在我想在同一个类中使用on private void简化窗口生成过程。但我不知道我该如何给这个空间一个所需的窗口 这是项目结构: 我已经尝试过几种类型的参数,比如“字符串、窗口或类型”,但每次我都会得到“xxx是一个变量,但它被用作类型” 这是调用未来窗口的按钮代码C# 使用一个空隙更容易打开窗户,c#,wpf,C#,Wpf,我有一个我正在尝试开发的软件启动器。现在,设置有一个“持久窗口”,这样启动器在选择一个按钮后是否保持打开状态 现在我想在同一个类中使用on private void简化窗口生成过程。但我不知道我该如何给这个空间一个所需的窗口 这是项目结构: 我已经尝试过几种类型的参数,比如“字符串、窗口或类型”,但每次我都会得到“xxx是一个变量,但它被用作类型” 这是调用未来窗口的按钮代码 private void Btn_NewAdress_Click(object sender, Rou
private void Btn_NewAdress_Click(object sender, RoutedEventArgs e)
{
fun_openWindow(Adress.frm_Adress,"new");
}
这就是我创造的新空间:
private void fun_openWindow(Window selectedWindow, string type)
{
selectedWindow form = new selectedWindow();
form.Show();
switch (type)
{
case "search":
form.ti_search.IsSelected = true;
break;
default:
form.ti_new.IsSelected = true;
break;
}
if (Properties.Settings.Default.persistentWindow == true)
{
this.Close();
}
}
我希望写入参数的窗口将打开,如果设置了设置,则启动器应关闭或不关闭。错误
selectedWindow是一个变量,但用作类型
是正确的,因为您确实将变量selectedWindow
用作类型
错误可能发生在以下代码行中:
selectedWindow form = new selectedWindow();
在赋值的左侧,编译器需要一个类型,然后是一个变量名。
在本例中,您指定了一个变量名(selectedWindow
),然后是另一个变量名(form
)。
此外,在赋值的右侧,编译器需要关键字new
和类型(例如窗口的类型),但您指定了变量名(selectedWindow
),而不是有效的类型。
正确的语法是:
Window form = new YourWindowClass();
对于您的实现,YourWindowClass
是frm\u地址
或frm\u启动器
,具体取决于显示的窗口。错误
selectedWindow是一个变量,但用作类型
是正确的,因为您确实将变量selectedWindow
用作类型
错误可能发生在以下代码行中:
selectedWindow form = new selectedWindow();
在赋值的左侧,编译器需要一个类型,然后是一个变量名。
在本例中,您指定了一个变量名(selectedWindow
),然后是另一个变量名(form
)。
此外,在赋值的右侧,编译器需要关键字new
和类型(例如窗口的类型),但您指定了变量名(selectedWindow
),而不是有效的类型。
正确的语法是:
Window form = new YourWindowClass();
对于您的实现,
YourWindowClass
是frm\u地址
或frm\u启动器
,具体取决于所显示的窗口。您可以使用泛型:
private void Btn_NewAdress_Click(object sender, RoutedEventArgs e)
{
fun_openWindow<Adress.frm_Adress>("new");
}
private void fun_openWindow<YourWindow>(string type) where YourWindow: Window, new()
{
YourWindow form = new YourWindow();
form.Show();
}
您可以使用泛型:
private void Btn_NewAdress_Click(object sender, RoutedEventArgs e)
{
fun_openWindow<Adress.frm_Adress>("new");
}
private void fun_openWindow<YourWindow>(string type) where YourWindow: Window, new()
{
YourWindow form = new YourWindow();
form.Show();
}
什么是地址?什么是地址?(请阅读)frm地址是一个窗口(WPF),带有“公共部分类frm地址:窗口”和publig initializecomponent()什么是
frm地址
?什么是地址?(请阅读)frm地址是一个窗口(WPF),带有“公共部分类frm_地址:窗口”和publig初始化组件()谢谢您的回答。但是在创建表单(form.show()
)之后,是否有方法访问新表单的formelements?这样上面的开关箱就可以工作了?现在我得到了“窗口不包含定义“ti_search”
,它位于开关盒中,您可以尝试使用((CustomWindowTypeWithProperties)表单).ti_search.IsSelected=true;
在开关语句中,将您的对象转换为确定类型。抱歉,我不知怎么搞不懂,即使您描述得那么好。CustomWindowTypeWithProperties
它到底需要写什么?一个类/类型,它包含ti_search
。但是adres.frm\Adress
包含ti_search,或我尝试使用此函数打开的其他表单,因此与第一个属性中的内容类似。然后它是一个变量,用作类型。感谢您的回答。但是在创建表单(form.show()
)之后有没有办法访问新表单的formelements?这样上面的切换框就可以工作了?现在我得到了“窗口不包含“ti_search”
的定义,在切换框中,您可以尝试使用((CustomWindowTypeWithProperties)表单)。ti_search.IsSelected=true代码>在switch
语句中,将对象强制转换为确定类型。对不起,我不知怎么搞不懂,即使你描述得那么好CustomWindowTypeWithProperties
它到底需要写什么?一个类/类型,它包含ti_search
。但是Address.frm_Address
包含ti_search,或者我试图用这个函数打开的其他表单,就像第一个属性中的内容一样。然后它是一个变量,就像一个类型一样使用。