扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在label的TextChanged中处理,代码如下:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网络空间、营销软件、网站建设、昆都仑网站维护、网站推广。
Private Sub Label1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.TextChanged
If Val(Label1.Text) = 30 Then
MessageBox.Show("恭喜你获胜了!", "系统提示", MessageBoxButtons.OK)
End If
End Sub
您好,
1.您可以使用string类的Length()方法获得字符串的长度。
2.对于Windows API,C#中是可以使用的,这里有一点Win32程序设计的内容,比如说,HWND指的是窗口句柄,这个窗口句柄是一个32位的整数(在32位平台上是这样),在C#中有一个专用的类型表示这种类型的值,IntPtr,在声明一个导入的API函数时,您可以把HWND类型的参数声明为IntPtr类型。
比如:
Win32 API函数FindWindow用来查找指定了窗口名或窗口类名的窗体,返回这个窗体的句柄,您可以这样声明这个函数:
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string className, string windowName);
完整的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string className, string windowName);
private void button1_Click(object sender, EventArgs e)
{
IntPtr hwnd = FindWindow("扫雷", "扫雷");
label1.Text = hwnd.ToString();
}
}
}
程序有一个按钮和一个Label,名称都是默认,先运行一个扫雷程序,在运行这个程序,点击按钮后Label里就会出现它的窗口句柄。
此程序在.NET 2.0+Windows XP xp2下调试通过。
您可以在MSDN ()上搜索IntPtr或“平台特定整数”获得有关此类型的详细描述。
希望这些信息对您有帮助。
==========================================================
对问题补充的答复:
您好,很抱歉我想不到有什么好的方法处理这个问题。
原因是这样的,对于Windows应用程序,一个字符串在屏幕上显示的大小是不确定的,例如,800*600分辨率下显示的字符串比同样的字符串在1024*768分辨率下的长度要大,而且用户主题字体的不同也可能导致字符串大小的不同。
我建议您使用一种折中的方法,比如,如果您编写的是Windows应用程序,您可以把这个字符串放在一个Label中,然后把这个Label的Autosize属性设为True,同时加上边框就可以了。
很抱歉这次没能帮上您。
画出来比较好,用鼠标当前坐标位置进行计算选择的方格位置,如果一个方格用一个控件,会很浪费资源。
先说一个 扫雷的吧,,没办法给你源程序,
就给你说制作过程吧,
打开VB6.0
在窗体的上半部分,用pictureBOX控件画一定的区域用来模仿WINDOWS那样的,里面显示雷数,时间,以及开始,,并且命名为picture1
在画好后,在picture1里 放4个控件,text1,text2,commandbutton(按钮),timer1.并且给这4个控件属性定义属性值:text1和text2的BackColor属性为黑色,ForeColor为红色,FONT属性改为小二号。text1 的text属性为10,text2的text属性为0
按钮控件的名称属性改为C1,Caption属性改为开始。FONT属性改为小二号
Timer1 属性 Enabled 为 False, Interval为1000
再Picture1的下面再用Picturebox控件画一定的区域做为雷区。将这个控件的名称属性改为P ,AutoRedraw属性改为True
然后再把控件P(雷区)里 放一个按钮(数组)控件,其属性:名称改为C,Caption为空
(怎么建数组控件?就是在该控件上点右键选择复制,在空白区选择粘贴,系统会提示你是否建立数组控件,你选是就OK了) 它变成数组控件后,两个控件名称一样都是C 但是会有一个C(0)和C(1) 你把(1)的删除就行了,在C(0)控件的属性style改为1,
做完以上的,,只需要把以下代码复制到代码区即刻运行
1、扫雷的按钮是画出来的,实际上没有一个按钮。你需要自己设计一个绘制指定像素大小按钮的函数(一个绘制鼓起状态、一个绘制凹下状态、一个绘制点开状态,你需要定义一个数组来记录“按钮”阵列的状态,比如:0=突起、1=凹下、2=点开)
2、MouseMove、MouseUp、MouseDown三个事件带有x和y坐标属性。根据x、y坐标可以计算出鼠标在哪个格子里。假如你的格子是12×12像素的,坐标整除12就是格子的行列坐标。既然可以知道格子的坐标,只要在鼠标按下的状态将鼠标所在坐标的格子绘制成凹下、其他格子绘制成突起、已经点开的不变就可以了。
3、由于扫雷的“按钮”其实是画出来的,所以不存在你说的焦点问题。
4、实际做扫雷我建议你用Paint粘贴小图块来做图。扫雷基本上就那么几种图块:鼓起、凹下、点开;地雷、1-8数字、红旗、问号。学会制作图块“字库”是设计这种小游戏的基本功。粘贴图块还可以使你的扫雷更加漂亮,因为你可以用绘图工具精心绘制这些图块,可以使扫雷更漂亮。
5、扫雷这个游戏是个像素矩阵游戏。首先你应该从像素矩阵角度来实现它的数学模型(以数字阵列的形式使它可以运行),而不是首先设计界面。因为界面只是最后的工作。你看到的图块只是矩阵中这些数据的表达。
如果你想寻求更多的帮助,推荐你去CSDN论坛()的VB板块求助。那里不乏有人做过扫雷。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流