aardio 文档

Modal 对话框

Modal 是模态对话框,适合删除确认、提交确认、错误详情、复杂内容展示等必须等待用户响应的场景。

在 aardio 中推荐使用 AntdUI.Modal.Config(...) 创建配置对象,再调用 AntdUI.Modal.open(cfg)。静态 Modal 需要 AntdUI 可识别的 owner,通常使用嵌入到 aardio custom 控件里的 AntdUI.BaseForm

基础确认框

import win.ui;
import dotNet;
import dotNet.AntdUI;
import System.Windows.Forms;

var winform = win.form(text="AntdUI Modal";right=640;bottom=360)
winform.add(
customBase={cls="custom";left=0;top=0;right=640;bottom=360;z=1};
btn={cls="button";text="删除";left=40;top=40;right=160;bottom=76;z=2}
)

var baseForm = AntdUI.BaseForm(winform.customBase);

winform.btn.oncommand = function(){
    var cfg = AntdUI.Modal.Config(baseForm,"删除确认","确定删除这条记录吗?",AntdUI.TType.Warn);
    cfg.OkText = "删除";
    cfg.CancelText = "取消";
    cfg.MaskClosable = false;
    cfg.Width = 420;

    var result = AntdUI.Modal.open(cfg);
    if(result == System.Windows.Forms.DialogResult.OK){
        AntdUI.Message.open(AntdUI.Message.Config(baseForm,"已删除",AntdUI.TType.Success));
    }
}

winform.show();
win.loopMessage();

Config 常用字段

多行内容 TextLine[]

如果正文需要分行、局部配色或控制行距,可用 AntdUI.Modal.TextLine 数组作为内容。

import dotNet;
import dotNet.AntdUI;

var asm = dotNet.load("AntdUI",$"~\lib\dotNet\AntdUI\.res\AntdUI.dll");
var textLineType = asm.getType("AntdUI.Modal+TextLine");
var lines = dotNet.createArray(textLineType,2);

lines.SetValue(AntdUI.Modal.TextLine("即将删除:客户 A"),0);
lines.SetValue(AntdUI.Modal.TextLine("此操作不可恢复",6),1);

var cfg = AntdUI.Modal.Config(baseForm,"危险操作",lines,AntdUI.TType.Error);
cfg.OkText = "确认删除";
cfg.OkType = AntdUI.TTypeMini.Error;
AntdUI.Modal.open(cfg);

自定义按钮 Btn[]

Modal.Btn 可添加除确定/取消外的业务按钮。aardio 中创建 .NET 数组时使用 dotNet.createArray,数组下标从 0 开始。

import dotNet;
import dotNet.AntdUI;

var asm = dotNet.load("AntdUI",$"~\lib\dotNet\AntdUI\.res\AntdUI.dll");
var btnType = asm.getType("AntdUI.Modal+Btn");
var btns = dotNet.createArray(btnType,2);

btns.SetValue(AntdUI.Modal.Btn("preview","预览",AntdUI.TTypeMini.Info),0);
btns.SetValue(AntdUI.Modal.Btn("delete","强制删除",AntdUI.TTypeMini.Error),1);

var cfg = AntdUI.Modal.Config(baseForm,"选择操作","请选择下一步操作",AntdUI.TType.Warn);
cfg.Btns = btns;
AntdUI.Modal.open(cfg);

使用控件作为内容

Content 也可以是 WinForms/AntdUI 控件。适合在 Modal 中放表单、输入框或列表。

import dotNet.AntdUI;
import System.Windows.Forms;
import System.Drawing;

var panel = System.Windows.Forms.Panel();
panel.Size = System.Drawing.Size(360,120);

var label = System.Windows.Forms.Label();
label.Text = "这里可以放置更复杂的 WinForms / AntdUI 内容。";
label.Dock = System.Windows.Forms.DockStyle.Fill;
panel.Controls.Add(label);

var cfg = AntdUI.Modal.Config(baseForm,"复杂内容",panel,AntdUI.TType.Info);
cfg.Width = 480;
AntdUI.Modal.open(cfg);

注意

Markdown 格式