diff --git a/web/src/designer/FormDesigner.vue b/web/src/designer/FormDesigner.vue
index f6fe933..d49839b 100644
--- a/web/src/designer/FormDesigner.vue
+++ b/web/src/designer/FormDesigner.vue
@@ -38,6 +38,8 @@ const emit = defineEmits<{
update: [designerText: string, codeText?: string]
/** 跳到窗体代码文件的某一行 */
openCode: [line: number]
+ /** 查看设计器生成的 Designer.cs */
+ openDesignerFile: []
undo: []
redo: []
}>()
@@ -431,6 +433,9 @@ const noop = () => {}
拖动工具箱里的控件到窗体上;双击控件生成事件处理方法;Delete 删除
+
@@ -581,6 +586,10 @@ const noop = () => {}
cursor: default;
}
+.view-code {
+ margin-left: auto;
+}
+
.tips {
min-width: 0;
margin-left: 8px;
diff --git a/web/src/pages/WorkbenchPage.vue b/web/src/pages/WorkbenchPage.vue
index 7247fab..7d0d68e 100644
--- a/web/src/pages/WorkbenchPage.vue
+++ b/web/src/pages/WorkbenchPage.vue
@@ -35,14 +35,18 @@ const forms = computed(() => {
// 启动窗体排在最前
.sort((a, b) => Number(b.code === `${startup}.cs`) - Number(a.code === `${startup}.cs`))
})
-/** 标签页按窗体分组:每个窗体依次是 [设计]、代码、Designer.cs;其他文件(Program.cs 等)放最后 */
+/**
+ * 标签页按窗体分组:每个窗体依次是 [设计]、代码;其他文件(Program.cs 等)放最后。
+ * Designer.cs 由设计器生成,平时不显示(和 VS 里藏在窗体文件下面一样),
+ * 在设计器里点"查看生成的代码"或点到其中的编译错误时才临时出现,切走后收起。
+ */
const tabs = computed(() => {
const grouped = new Set(forms.value.flatMap((f) => [f.code, f.designer]))
return [
...forms.value.flatMap((f) => [
{ name: f.tab, label: `${f.code} [设计]` },
{ name: f.code, label: f.code },
- { name: f.designer, label: f.designer },
+ ...(activeTab.value === f.designer ? [{ name: f.designer, label: f.designer }] : []),
]),
...files.value.filter((f) => !grouped.has(f.path)).map((f) => ({ name: f.path, label: f.path })),
]
@@ -308,6 +312,7 @@ function run() {
@undo="designerHistory.undo(activeForm.designer, activeForm.code)"
@redo="designerHistory.redo(activeForm.designer, activeForm.code)"
@open-code="openCode"
+ @open-designer-file="activeTab = activeForm.designer"
/>