我有一个我写的Windows窗体应用程序,它对收件箱和数据库进行了一些监视.客户告诉我,每次服务器重新启动时都需要运行.让我感到羞耻的是让客户改变了要求.
我在想...有没有办法让Windows Forms应用程序作为服务运行,以便它自动启动?
澄清
我想尝试不再编写任何代码......如果可能的话!
我有一个小应用程序来转换几种文件格式,主窗口形式包含几个文本框,按钮等.我有另一个"文档"类,它处理所有的实际转换工作,我的表单基本上迭代所有的文件,并调用适当的Document方法来转换文件.然而,当这种情况发生时,表单会停止响应.我创建了另一个简单的表单,其中包含一个进度条和一个取消按钮,当转换开始向我们(容易被叮叮当当的)用户提供一些反馈时,它会产生.但是,当新表单加载时,所有控件都是白色框,并且它也停止响应.转换完成后,进度条将正常关闭,主窗体将再次响应.
是否有一种简单的方法可以使这两种形式独立,这样即使另一种形式没有反应,进度条也可以运行?
我问的是你之前用来将ac#windows表单应用程序转换成asp.net的最佳工具?我已经在谷歌上搜索了这个主题并发现了很多工具,但我希望有人根据他的用法推荐最好的工具.
我有一个包含SQL中两列的表,我想从中提取值.但问题是我不知道如何在C#代码中检索第2列的值.我正在使用SQL Server 2008和VS. 我是否必须在SP中使用OUTPUT参数?如果是这样,我将如何指定此SP?我已经尝试过OUTPUT参数,但是我无法创建OUTPUT参数而没有错误,因为我也试图选择COLUMN_NAME.此查询返回了4列,我只想获得此列数.应该有一个更简单的方法来做到这一点,不是吗?这适用于SQL,但不适用于C#.
这是我的SP:
CREATE PROCEDURE [dbo].[getColumnNames]
@TableName varchar(25)
AS
SELECT name 'COLUMN_NAME', (
SELECT COUNT(ID)
FROM syscolumns WHERE id = (
SELECT id
FROM sysobjects
WHERE name= @TableName)) 'ROW_COUNT'
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE name= @TableName)
RETURN
Run Code Online (Sandbox Code Playgroud)
这是我的C#代码调用此SP:
public static SqlDataReader DisplayTableColumns(string tt)
{
SqlDataReader dr = null;
string TableName = tt;
string connString = "Data Source=.;AttachDbFilename=\"C:\\Program Files\\Microsoft SQL Server\\...";
string errorMsg;
try
{
SqlConnection conn2 = new SqlConnection(connString);
SqlCommand cmd = conn2.CreateCommand(); …Run Code Online (Sandbox Code Playgroud) 我在Boo语言指南中遇到了一个奇怪的语法:
setter = { value | a = value }
Run Code Online (Sandbox Code Playgroud)
什么是| 运营商意味着
一切都从对象继承.这是继承的基础.一切都可以隐式地构建继承树,即.
object me = new Person();
Run Code Online (Sandbox Code Playgroud)
因此,遵循这个逻辑结论,一群人也将成为一组对象:
List<Person> people = new List<Person>();
people.Add(me);
people.Add(you);
List<object> things = people; // Ooops.
Run Code Online (Sandbox Code Playgroud)
除了,这不起作用,设计.NET的人要么忽略了这个,要么就是有原因,我不确定是哪个.至少有一次我遇到了一个有用的情况,但我不得不最后使用一个讨厌的黑客(子类化List只是为了实现一个强制转换操作符).
问题是:这种行为有原因吗?是否有更简单的解决方案来获得所需的行为?
为了记录,我相信我想要这种行为的情况是一个通用的打印功能,它通过调用ToString()并很好地格式化字符串来显示对象列表.
HTML:
<asp:LinkButton ID="lnk_productImage" runat="server" Text="select"
OnClick="viewProductImage('<%#DataBinder.Eval(Container.DataItem,"Id") %>')"
>
</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
protected void viewProductImage(object sender, EventArgs e, int id)
{
//Load Product Image
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Citrix服务器上使用WPF应用程序,并使用按钮和文本框创建了一个非常简单的窗口.运行应用程序时,会显示窗口顶部的应用程序名称.是不是可以在Citrix上使用WPF,还是我们的Citrix服务器太旧了?
我有一个列表框,每个列表项中都有一堆控制.
<ListBox x:Name="projectList" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<ListBox x:Name="taskList" ItemsSource="{Binding Tasks}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBox x:Name="textBoxTask" />
<Button
x:Name="ButtonAddNewTask"
Content="Test"
CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DataContext}"
Click="ButtonAddNewTask_Click"
/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
当我单击列表框中的按钮时,我想将新项目添加到列表框中的列表框中.我走到这一步.所以我的问题是如何获取文本框以及如何更新列表框?
这是我的点击事件
private void ButtonAddNewTask_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
Project proj = button.DataContext as Project;
if(proj.Tasks == null)
proj.Tasks = new List<Task>();
proj.Tasks.Add(new Task("Added Task"));
}
Run Code Online (Sandbox Code Playgroud)
感谢名单
public void test()
{
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
for (int i = 1; i <= list.Count; i++)
{
textBx.Text = list[i].ToString();
// I want it to be textBx1.Text = list[1].ToString();
textBx2.Text = list[2].ToString();
textBx3.Text = list[3].Tostring();
etc.
// I can't create textbox dynamically as I need the text box to be placed in specific places in the form . How do I do it the best way?
}
}
Run Code Online (Sandbox Code Playgroud) 我在Windows窗体(C#3.0,.net 3.5 SP1,VS2008 SP1,Vista)上有一个计时器,即使在它被停止后似乎也能工作.代码是:
using System;
using System.Windows.Forms;
namespace TestTimer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
StartTimer();
}
private DateTime deadline;
private void StartTimer()
{
deadline = DateTime.Now.AddSeconds(4);
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
int secondsRemaining = (deadline - DateTime.Now).Seconds;
if (secondsRemaining <= 0)
{
timer1.Stop();
timer1.Enabled = false;
MessageBox.Show("too slow...");
}
else
{
label1.Text = "Remaining: " + secondsRemaining.ToString() + (secondsRemaining > 1 ? " seconds" : " second");
} …Run Code Online (Sandbox Code Playgroud) c# ×6
winforms ×4
.net ×3
wpf ×2
asp.net ×1
boo ×1
citrix ×1
closures ×1
collections ×1
html ×1
inheritance ×1
linkbutton ×1
listbox ×1
onclick ×1
parameters ×1
sql ×1
timer ×1