c1messagebox 本地化按钮的内容

C1MessageBox控件的本地化实现
本文介绍了如何解决C1Messagebox在本地化时只能显示中文或英文的问题。通过创建资源文件定义按钮文本,然后创建Style并设置给C1MessageBoxContent,再在调用显示方法前执行设置方法,即可实现在语言切换时的本地化显示。提供了一个内部静态方法SetMessageboxContent作为示例。

c1messagebox,是第三方控件,有确定、取消、是、否,4个按钮可供选择。

可是发现,本地化的时候,显示要么是中文、要么是英文,无法做到本地化的目的(当切换语言的时候)。

下面是方法:

1 创建资源文件,定义这4个按钮的中文和英文的信息

2 创建Style,赋值给c1messagebox样式,做成一个方法A

3 在调用show方法之前,调用方法A

 

备注:如果需要全局都本地化,那么需要在登录的时候,执行一次这个方法A。

参考代码如下:

 internal static void SetMessageboxContent()
        {
            Style style = new Style(typeof(C1MessageBoxContent));
            style.Setters.Add(new Setter(C1MessageBoxContent.OKTextProperty, Resource.language.MessageboxOK));
            style.Setters.Add(new Setter(C1MessageBoxContent.CancelTextProperty, Resource.language.MessageboxCancel));
            style.Setters.Add(new Setter(C1MessageBoxContent.YesTextProperty, Resource.language.MessageboxYes));
            style.Setters.Add(new Setter(C1MessageBoxContent.NoTextProperty, Resource.language.MessageboxNo));
            C1MessageBox.ContentStyle = style;
        }

using WinForms4.Models; using Microsoft.EntityFrameworkCore; using System.Windows.Forms; using System.Data; namespace WinForms4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); InitEvents(); dataGridView1.AutoGenerateColumns = false; dataGridView1.Dock = DockStyle.Top; dataGridView1.AllowUserToAddRows = false; dataGridView1.AllowUserToDeleteRows = false; dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; using var c = new MyDb1Context(); var q = from t in c.Student select t; bindingSource1.DataSource = q.ToList(); dataGridView1.Refresh(); } private void InitEvents() { dataGridView1.SelectionChanged += (s, e) => { Student stu = (Student)bindingSource1.Current; textBox1.Text = stu.XueHao; textBox2.Text = stu.Name; textBox3.Text = stu.Age.ToString(); textBox4.Text = stu.ChengJi.ToString(); }; button1.Click += (s, e) => { if (!int.TryParse(textBox3.Text, out int age)) { MessageBox.Show("年龄必须为整数!"); return; } if (!int.TryParse(textBox4.Text, out int chengji)) { MessageBox.Show("成绩必须为数字!"); return; } try { using (var c = new MyDb1Context()) { Student stu = new() { XueHao = textBox1.Text, Name = textBox2.Text, Age = age, ChengJi = chengji }; c.Student.Add(stu); c.SaveChanges(); } } catch (Exception ex) { string errMsg = $"{ex.Message}\n内部异常:\n{ex.InnerException?.Message}"; MessageBox.Show(errMsg, "出错了", MessageBoxButtons.OK, MessageBoxIcon.Error); } using var c1 = new MyDb1Context(); var q = from t in c1.Student select t; bindingSource1.DataSource = q.ToList(); dataGridView1.Refresh(); }; button3.Click += (s, e) => { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请先选择要删除的行,然后再单击删除按钮。", "警告"); return; } using var c = new MyDb1Context(); Student stu = (Student)bindingSource1.Current; c.Student.Remove(stu); c.SaveChanges(); using var c1 = new MyDb1Context(); var q = from t in c1.Student select t; bindingSource1.DataSource = q.ToList(); dataGridView1.Refresh(); }; button2.Click += (s, e) => { if (dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("请先选择要修改的行,然后再单击修改按钮。", "警告"); return; } if (!int.TryParse(textBox3.Text, out int age)) { MessageBox.Show("年龄必须为整数!"); return; } if (!int.TryParse(textBox4.Text, out int chengji)) { MessageBox.Show("成绩必须为数字!"); return; } using var c = new MyDb1Context(); Student stu = (Student)bindingSource1.Current; stu.XueHao = textBox1.Text; stu.Name = textBox2.Text; stu.Age = age; stu.ChengJi = chengji; c.SaveChanges(); dataGridView1.Refresh(); }; button4.Click += (s, e) => { using (MyDb1Context c = new()) { dataGridView1.DataSource = c.Student.ToList(); } using (MyDb1Context c = new()) { var v2 = c.Student .FromSqlRaw("select * from Student where Name = {0}", textBox5.Text) .ToList(); dataGridView1.DataSource = v2; label6.Text = $"执行结果:满足条件的有{v2.Count}条"; } }; } } }为什么界面无法展示添加后的数据
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值