WinForm 窗体屏蔽Alt+F4

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            //e.SuppressKeyPress = (e.Alt && e.KeyCode == Keys.F4);
            e.SuppressKeyPress = (e.KeyData == (Keys.Alt | Keys.F4)); // 阻止当前控件接收按键。
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
public void SetBits() { //绘制绘图层背景 Bitmap bitmap = new Bitmap(Main.Width + 10, Main.Height + 10); Rectangle _BacklightLTRB = new Rectangle(20, 20, 20, 20);//窗体光泽重绘边界 Graphics g = Graphics.FromImage(bitmap); g.SmoothingMode = SmoothingMode.HighQuality; //高质量 g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量 ImageDrawRect.DrawRect(g, Properties.Resources.main_light_bkg_top123, ClientRectangle, Rectangle.FromLTRB(_BacklightLTRB.X, _BacklightLTRB.Y, _BacklightLTRB.Width, _BacklightLTRB.Height), 1, 1); if (!Bitmap.IsCanonicalPixelFormat(bitmap.PixelFormat) || !Bitmap.IsAlphaPixelFormat(bitmap.PixelFormat)) throw new ApplicationException("图片必须是32位带Alhpa通道的图片。"); IntPtr oldBits = IntPtr.Zero; IntPtr screenDC = Win32.GetDC(IntPtr.Zero); IntPtr hBitmap = IntPtr.Zero; IntPtr memDc = Win32.CreateCompatibleDC(screenDC); try { Win32.Point topLoc = new Win32.Point(Left, Top); Win32.Size bitMapSize = new Win32.Size(Width, Height); Win32.BLENDFUNCTION blendFunc = new Win32.BLENDFUNCTION(); Win32.Point srcLoc = new Win32.Point(0, 0); hBitmap = bitmap.GetHbitmap(Color.FromArgb(0)); oldBits = Win32.SelectObject(memDc, hBitmap); blendFunc.BlendOp = Win32.AC_SRC_OVER; blendFunc.SourceConstantAlpha = Byte.Parse("255"); blendFunc.AlphaFormat = Win32.AC_SRC_ALPHA; blendFunc.BlendFlags = 0; Win32.UpdateLayeredWindow(Handle, screenDC, ref topLoc, ref bitMapSize, memDc, ref srcLoc, 0, ref blendFunc, Win32.ULW_ALPHA); } finally { if (hBitmap != IntPtr.Zero) { Win32.SelectObject(memDc, oldBits); Win32.DeleteObject(hBitmap); } Win32.ReleaseDC(IntPtr.Zero, screenDC); Win32.DeleteDC(memDc); } }
实现一个基于 WinForms 和 SQL Server 的客服系统,需要以下几个步骤: 步骤1:创建数据库和表 首先,在 SQL Server 中创建一个新的数据库,然后创建一个名为 `Messages` 的表来存储客服消息。表的结构可以如下所示: ```sql CREATE TABLE Messages ( ID INT IDENTITY(1,1) PRIMARY KEY, Sender NVARCHAR(50), MessageText NVARCHAR(MAX), Timestamp DATETIME ) ``` 这个表有四个列:`ID` 作为自增主键,`Sender` 存储消息发送者的名称,`MessageText` 存储消息内容,`Timestamp` 存储消息的时间戳。 步骤2:创建 WinForms 应用程序 在 Visual Studio 中创建一个新的 WinForms 应用程序项目。设计一个窗体界面,可以包括一个用于显示消息的文本框、一个用于输入消息的文本框和一个发送按钮。 步骤3:连接到数据库 在代码中添加连接到 SQL Server 数据库的代码。你可以使用 `SqlConnection` 类来建立连接。例如: ```csharp using System.Data.SqlClient; // ... string connectionString = "Data Source=YourServer;Initial Catalog=YourDatabase;User ID=YourUsername;Password=YourPassword"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); ``` 将 `YourServer`、`YourDatabase`、`YourUsername` 和 `YourPassword` 替换为你的实际数据库连接信息。 步骤4:发送消息 在发送按钮的点击事件处理程序中,添加代码将消息保存到数据库中。使用 `SqlCommand` 类执行插入操作。例如: ```csharp string sender = "Customer"; // 消息发送者 string messageText = textBoxMessage.Text; // 从文本框获取消息内容 DateTime timestamp = DateTime.Now; // 当前时间作为时间戳 string insertQuery = "INSERT INTO Messages (Sender, MessageText, Timestamp) VALUES (@Sender, @MessageText, @Timestamp)"; SqlCommand command = new SqlCommand(insertQuery, connection); command.Parameters.AddWithValue("@Sender", sender); command.Parameters.AddWithValue("@MessageText", messageText); command.Parameters.AddWithValue("@Timestamp", timestamp); command.ExecuteNonQuery(); // 清空消息输入框 textBoxMessage.Text = ""; ``` 步骤5:显示消息 在窗体加载事件处理程序中,添加代码从数据库中检索消息,并在文本框中显示。使用 `SqlDataReader` 类执行查询操作。例如: ```csharp string selectQuery = "SELECT Sender, MessageText FROM Messages"; SqlCommand selectCommand = new SqlCommand(selectQuery, connection); SqlDataReader reader = selectCommand.ExecuteReader(); while (reader.Read()) { string sender = reader["Sender"].ToString(); string messageText = reader["MessageText"].ToString(); // 在文本框中显示消息 textBoxDisplay.AppendText(sender + ": " + messageText + Environment.NewLine); } reader.Close(); ``` 步骤6:关闭数据库连接 在窗体关闭事件处理程序中,记得关闭数据库连接,释放资源。例如: ```csharp connection.Close(); ``` 以上是一个简单的示例来实现基于 WinForms 和 SQL Server 的客服系统。你可以根据你的实际需求进行进一步的开发和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值