我想知道是否可以在网页的搜索框附近没有提交按钮(Ok,Go或Search).
我知道点击输入要快得多,它会执行搜索.
但是,对于普通的非技术用户还是仅限于技术社区来说,这是一个公认的惯例吗?
例如,stackoverflow的搜索框没有提交按钮,但我认为没有人抱怨(我肯定不会).
另一方面,有人建议以谷歌为例:人们会注意到这些按钮是否被移除了?
我刚开始读书,不要让我思考由史蒂夫克鲁格和他提到,每一个搜索框,应该有一些告诉我,我可以点击它来启动搜索.
你的意见?
以下代码实现了一个简单的单例,确保只能运行我的应用程序的一个实例.但是,如果启动了另一个实例,我需要能够获取该实例的命令行参数,将它们传递给初始实例,然后终止第二个实例.
当我试图抓住应用程序的第一个实例时,问题出现了.一旦我找到了该实例的主窗体的句柄,我将它传递给Control.FromHandle()
方法,期望得到一个MainForm
.相反,返回值始终是null
.(Control.FromChildHandle()
给出相同的结果.)
因此,我的问题很简单:我做错了什么?这在.NET中甚至可能吗?
public class MainForm : Form
{
[DllImport("user32")]
extern static int ShowWindowAsync(IntPtr hWnd, int nCmdShow);
[DllImport("user32")]
extern static bool SetForegroundWindow(IntPtr hWnd);
private Mutex singletonMutex;
private void MainForm_Load(object sender, EventArgs e)
{
bool wasCreated;
singletonMutex = new Mutex(false, Application.ProductName + "Mutex", out wasCreated);
// returns false for every instance except the first
if (!wasCreated)
{
Process thisProcess = Process.GetCurrentProcess();
Process[] peerProcesses = Process.GetProcessesByName(thisProcess.ProcessName.Replace(".vshost", string.Empty));
foreach (Process currentProcess in peerProcesses)
{
if …
Run Code Online (Sandbox Code Playgroud) 我正在使用ASP MVC RC1.
我正在使用的表单包含一个下拉列表,我已将此代码放入视图中.
<%= Html.DropDownList("areaid", (SelectList)ViewData["AreaId"], "Select Area Id")%>
Run Code Online (Sandbox Code Playgroud)
但是,渲染时,这就是我得到的
<select id="areaid" name="areaid">
<option value="">Select Area Id</option>
<option value="1">Home</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
我想要的是选择区域ID选项的值为0,默认情况下将其标记为已选中,因此它与其他值一致,我可以验证是否已选择某个区域,因为它是强制性的值.AreaId是一个整数,因此当我当前单击该表单而根本没有触及下拉列表时,MVC抱怨""不是整数并且给我一个绑定错误.
那么如何设置默认选项的值,然后在表单上选中它?
谢谢,丹
我一直试图通过Euler项目的问题27来解决这个问题,但是这个问题似乎让我很难过.首先,代码运行时间太长了(可能在我的机器上运行几分钟,但更重要的是,它返回了错误的答案,虽然在查看了一段时间之后我真的无法发现算法有任何问题.
这是我目前的解决方案代码.
/// Checks number for primality.
let is_prime n =
[|1 .. 2 .. sqrt_int n|] |> Array.for_all (fun x -> n % x <> 0)
/// Memoizes a function.
let memoize f =
let cache = Dictionary<_, _>()
fun x ->
let found, res = cache.TryGetValue(x)
if found then
res
else
let res = f x
cache.[x] <- res
res
/// Problem 27
/// Find a quadratic formula that produces the maximum number of …
Run Code Online (Sandbox Code Playgroud) 我想知道自动删除是如何在iPhone上运行的.我知道,一旦你向对象发送自动释放,它就会被保留,直到autorelease
被发送的块的范围结束.那是对的吗?
我在applicationDidFinishLaunching
下面的NIB中初始化一个视图:
(void)applicationDidFinishLaunching:(UIApplication *)application {
loginViewController = [[[LoginViewController alloc] initWithNibName:@"LoginView" bundle:nil] autorelease];
[window addSubview: [loginViewController view]];
[window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
并且视图根本没有显示,屏幕上的所有内容都是 UIWindow
现在,一旦我autorelease
从控制器初始化中删除了所有内容,从那里开始顺利进行.
这是关于什么的?
干杯,K.
参考我目前正在构建的这个编程游戏.
alt text http://img12.imageshack.us/img12/2089/shapetransformationf.jpg
要在WPF中翻译Canvas,我使用两个表单:( TranslateTransform
移动它)和RotateTransform
(旋转它)[ 相同的子节点 TransformationGroup
]
我可以很容易地获得画布的左上角x,y坐标,当它没有旋转(或旋转90度,因为它将是相同的),但我面临的问题是左上角(和其他3点)坐标.
这是因为当RotateTransform
应用a 时,TranslateTransform
's X
和Y
属性不会改变(因此仍然表明正方形的左上角就像点状正方形(来自图像)
Canvas正在从它的中心旋转,因此它就是它的起源.
那么如何在旋转后获得4个点的"新"x和y坐标?
[UPDATE]
alt text http://img25.imageshack.us/img25/8676/shaperotationaltransfor.jpg
我找到了找到左上角的方法通过将旋转中的OffsetX和OffsetY添加到起始X和Y坐标,在旋转后坐标的方法(从新图像中可以看到).
但我现在无法找出其余的坐标(另外3个).
通过这种旋转的形状,我如何计算其余3个角的x和y坐标?
[编辑]
第二张图片中的点不准确和精确点.我在脑海中估计了这一点.
[更新]解决方案:
首先,我要感谢Jason S.这篇冗长且非常翔实的文章,其中他描述了整个过程背后的数学; 通过阅读你的帖子和尝试价值观,我当然学到了很多东西.
但我现在已经找到了一个代码片段(感谢EugeneZ的提及TransformBounds
),它完全符合我的要求:
public Rect GetBounds(FrameworkElement of, FrameworkElement from)
{
// Might throw an exception if of and from are not in the same visual tree
GeneralTransform transform = …
Run Code Online (Sandbox Code Playgroud) 我想为我的一个控件模板创建一个矩形的"平面3D"外观.在它最简单的版本中,这意味着底部的线条比顶部的线条暗,并且左侧和右侧线条之间也可能存在一些差异.
更复杂的版本允许我提供一个或多个画笔,以便可以应用渐变.
默认 <Border>
WPF中元素允许您为每条边指定不同的厚度,但我找不到指定多个笔刷的方法.
那么,我怎样才能尽可能简单地产生我想要的效果呢?
编辑有人建议我发布一个我想如何使用它的例子.就个人而言,我很乐意拥有一个风格或用户控件.因此可以使用用户控件:
<FourSidedBorder LeftSideBrush="#00f" RightSideBrush="#0f0" ... />
Run Code Online (Sandbox Code Playgroud)
或者甚至更简单:
<FourSidedBorder BorderBrush="#00f,#0f0,#f00,#fff"
BorderThickness="1,2,3,4" ... />
Run Code Online (Sandbox Code Playgroud)
这些只是想法.任何明智,简洁的解决方案都是受欢迎的.
我需要创建一个我只使用一次的文件夹,但需要在下次运行之前存在它.看起来我应该在标准库中使用tmp_file模块,但我不知道如何获得我想要的行为.
目前,我正在执行以下操作来创建目录:
randName = "temp" + str(random.randint(1000, 9999))
os.makedirs(randName)
Run Code Online (Sandbox Code Playgroud)
当我想删除目录时,我只需要查找一个带有"temp"的目录.
这似乎是一个肮脏的黑客,但我不确定目前更好的方式.
顺便说一下,我需要文件夹的原因是我启动了一个使用以下文件夹的进程:
subprocess.Popen([command], shell=True).pid
Run Code Online (Sandbox Code Playgroud)
然后退出我的脚本让其他进程完成工作.
我有一个像这样的web.sitemap:
<siteMapNode url="~/Default.aspx" title="Home" description="" >
<siteMapNode title="Node 1" description="">
<siteMapNode url="" title="Node 1-1" description="" />
<siteMapNode url="" title="Node 1-2" description="" />
</siteMapNode>
<siteMapNode title="Node 2" description="">
<siteMapNode url="" title="Node 2-1" description="" />
<siteMapNode url="" title="Node 2-2" description="" />
</siteMapNode>
</siteMapNode>
Run Code Online (Sandbox Code Playgroud)
如果我使用ASP.NET菜单控件(使用StaticDisplayLevels = 2),我会得到:
| 主页| 节点1 | 节点2 |
是否有跳过"Home"并获取此菜单的属性(来自该站点地图):
| 节点1 | 节点2 |
?
在使用时System.Windows.Forms.ShowDialog(IWin32Window)
,我是否应该能够传递一个IWin32Window
代表任何窗口句柄并使其相对于该窗口是模态的?
作为Internet Explorer 7扩展的一部分,我正在尝试打开与Internet Explorer选项卡相关的窗口模式.它不是当前选中的选项卡,但我可以获得选项卡的hwnd.但是,当我将它传递给ShowDialog时,我的表单会显示出来,但它不是关于任何形式的模态:我仍然可以在Internet Explorer中执行操作,包括在应该是所有者的选项卡中.我的表单显示在Internet Explorer窗口上方并且保持在顶部,因此它不像它只是作为普通表单打开,但它不是正确的模态.
使用Spy ++,我可以找到我的表单,并且正确设置了它的所有者句柄.
这是否意味着出了问题,或者我做错了什么?如何正确地模态我的表单?
仅供参考,我正在使用这个包装类来创建IWin32Window
一个hwnd
(感谢Ryan!):
/// <summary>
/// Wrapper class so that we can return an IWin32Window given a hwnd
/// </summary>
public class WindowWrapper : System.Windows.Forms.IWin32Window
{
public WindowWrapper(IntPtr handle)
{
_hwnd = handle;
}
public IntPtr Handle
{
get { return _hwnd; }
}
private IntPtr _hwnd;
}
Run Code Online (Sandbox Code Playgroud)
更新:使用Internet Explorer 7和.NET 2.0
更新:使用Spy ++和它暴露的句柄玩一些,我发现如果我使用不同的hwnd
话,我可以使我的窗口模态到选项卡:
我正在使用IWebBrowser2.HWND dochwnd …