NumericUpDownは整数のみを扱っているようです。どうすれば修正できますか?(?)ので、倍精度をValueおよびIncrementとして使用できますか?WinForms:NumericUpDown(.NET CF 3.5)と実数
答えて
DecimalPlacesというプロパティがあります。 0より大きい値に設定すると小数点以下を扱うことができます
CFでは動作しません。 –
CompactFrameworkに「DecimalPlaces」がないようです。 –
おっと、申し訳ありませんが、downvoteを打ち消すために__CF__ –
NumericUpDownは小数点以下の型で動作しますが、コンパクトなフレームワーク上でのみ整数です。これはCF上のクラスの制限です。
しかし、CFの実装を提供するCodeProject UserControlがあります。
回避策または無料の代替手段がありますか? –
はい。私はちょうど私の答えにそれを加えた。 –
ありがとうございます。見たことあります。そのテキストボックスは、2つの画像とタイマー(!!)で偽装されています。私はそれをテストし、50%の時間で入力を得ることはできません。クリックしても何も起こりません。 –
テキストボックスを使用して、OnKeyPressイベントをオーバーライドするだけです。このコードは過去に私のために働いていましたが、1234.56ではなく1234,56を書くグループにのみ適しています。
public partial class NumberTextBox : TextBox
{
public NumberTextBox()
{
InitializeComponent();
}
public decimal Value
{
get
{
try
{
return decimal.Parse(Text);
}
catch (Exception)
{
return -1;
}
}
}
public int ValueInt
{
get { return int.Parse(Text); }
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.' && (this).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
base.OnKeyPress(e);
}
public void AppendString(string value)
{
if (string.IsNullOrEmpty(value))
{
Text = string.Empty;
}
else
{
if (value == "." && Text.IndexOf('.') > -1)
return;
Text += value;
}
}
}
ここでのコードは、コンパクトフレームワークでテストされたブロックコードの1つです。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '.')
{
if (((TextBox)sender).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
else if (((TextBox)sender).Text.Length == 0)
{
e.Handled = true;
}
}
else if (!char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
if (e.KeyChar == '\b') // backspace silme tuşunun çalıması için gerekli
{
e.Handled = false;
}
base.OnKeyPress(e);
}
ところで、私はCompact Frameworkが嫌いです。それはあまりにも限られているので!しかし、私はしなければならない:(
- 1. のHttpWebRequestと.NET CF 3.5
- 2. .NET CF 3.5 TextBox - 無効化辞書
- 3. ガベージコレクタコールclear()(CF 3.5)
- 4. .NETのグラフCF
- 5. .net cf 3.5 treeview指定されたノードのチェックボックスのみ
- 6. VS 2008で.NET CF 3.5モバイルアプリケーションの作成が遅い
- 7. .NET CFのSSL TCPクライアント?
- 8. 実行中は、.NET 3.5のMSBuildとNantContrib
- 9. .NET CF自動スクロール
- 10. オリエンテーションでNET CFのローカライズ
- 11. .NET CF 3.5を検出してインストールするためのWindows Mobile Cab Setup
- 12. .net CF 3.5で特定のタイムゾーンを取得していますか?
- 13. IBM Websphere MQにC#.net CF 3.5からWiN CE 6デバイスを実行するための最良の方法
- 14. .NET 3.5対.NET 3.0
- 15. 自己更新.net CFアプリケーション
- 16. .NET CompactFrameworkのSystem.Net.WebClientクラス3.5?
- 17. .Net 3.5でのMVCの実装
- 18. .NET 3.5 RSSとXMLスタイルシート
- 19. HtmlForm.Actionと.NET Framework 2.0/3.5クエリ
- 20. .NET 3.5 Linqデータソースと結合
- 21. asp.net c#.net framework 2.0と3.5
- 22. Windows Mobileで数値を入力する最も良い方法は何ですか? (.NET CF 3.5)
- 23. .NET 3.5マルチスレッド化
- 24. .Net 3.5サイレントインストーラ?
- 25. .NET 3.5コントロールチャート(VS2010)
- 26. IsolatedStorageFile.GetLastWriteTime for .NET 3.5
- 27. MSCharts&.NET 3.5 SP1
- 28. .NET 3.5 WCFリクエストフィルタリング
- 29. DtdProcessing.Ignore in .net 3.5
- 30. Learn .NET 3.5
これをコメントとして追加する:NumericUpDownはおそらく、Windowsの歴史の中で最も醜い、もっとも価値のない、最も価値のないコントロールである。 SIP(キーボードモード)で数字を入力するのは苦痛ですが、「Windows Mobileで数字を入力する最も良い方法は何ですか?」という質問をすれば、私が今までに遭遇した中で最も美しいC#コードを投稿します – MusiGenesis
デスクトップの隣にあるスライドバーを使用して簡単にしました。 –
@MusiGenesis:http://stackoverflow.com/questions/1324559/whats-the-best-way-to-enter-numbers-in-windows -mobile-net-cf-3-5/1324599#1324599;) –